質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

4回答

2270閲覧

こちらのER図の読み方について

退会済みユーザー

退会済みユーザー

総合スコア0

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2017/09/01 03:23

イメージ説明

ER図の読み方について質問なのですが、例えば、こちらの画像を例にした場合は、

1つの顧客マスタは0以上の注文テーブルを持つ
1つの注文テーブルは0か1の顧客IDを持つ

のような読み取り方であってますでしょうか?

つまり、常に「1つ」のXXXに対して、???のYYYを持っているのように、読み解けば良いのでしょうか?

それとも、上の画像の場合、

0か1の顧客マスタが0以上の注文テーブルを持つ
0以上の注文テーブルは0か1の顧客マスタを持つ

のような読み方をするのでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答4

0

1つの顧客マスタは0以上の注文テーブルを持つ
1つの注文テーブルは0か1の顧客IDを持つ

上記であっています。

ですが、読み取ることは他にもあります。
それは、注文テーブルに顧客IDが外部キー(FK)で設定されていることです。
関係から言うと顧客マスタに登録の無い注文が発生するという事ですから、
その場合、注文テーブルの顧客IDにはNullが発生するということなので、外部キー制約を設定する場合にはNullを許容する必要があることになります。

まあ、それは細かいことになりますが、リレーションの関係だけをさらっと読むと、「会員登録しなくても注文ができるようにするんだな」みたいな解釈を私だったらしそうですね。
※実際、ネットでの注文なんかではよくある話ですし。

投稿2017/09/01 04:55

編集2017/09/01 05:32
sazi

総合スコア25195

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/09/01 05:14

ありがとうございます!!
guest

0

どちらでも意味は同じかと思いますので、何とも言いづらいですが、私としては前者で読み解くと思います。

顧客マスタから見て、注文テーブルは鳥足で構成されていることから、1つの顧客マスタは0以上の注文テーブルを持つと私なら読みます。(注文の無い顧客もあるし、1つ以上複数の注文を持つ事もある、と認識します)

それと同様に、1つの注文テーブルは0か1の顧客IDを持つと読みますね。(顧客IDが特定できる注文もあり得ると同時に、顧客IDのない注文もある。(会員制の注文で新規の場合みたいなイメージで捉えます))

日本語としてもそちらの方が頭に入ってきやすいですし、例えば、後者の場合で0の顧客マスタが~を持つというパターンを考慮する事はできないと思いますので…存在しないのですから。

投稿2017/09/01 04:18

motuo

総合スコア3027

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/09/01 04:44

一応、どちらでも間違いではないのですね。ありがとうございました!
guest

0

ベストアンサー

1つの顧客マスタは0以上の注文テーブルを持つ
1つの注文テーブルは0か1の顧客IDを持つ

合ってますよ。

0,1 対 0-N という言い方もできます。
ですが、〇対△ という言い方で一言でまとめようとすると自分は理解できません。
基準となるテーブルの1行に対してもうひとつのテーブルが0,1,N行になるというところを意識するようにしてます。
分かった気になると痛い目をみるので、己を知り、自分が理解しやすい形で噛み砕きます。

投稿2017/09/01 04:09

Tak1016

総合スコア1408

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/09/01 04:43

ありがとうございました。『合っている」という言葉に安心いたしました。
guest

0

正解というよりは、私なりの認識では以下のように考えています。

0か1(もしくは多)の場合は、0を持たなくても良いと考える
例の場合は、丸がどちらにも記載されている任意なものですので、
顧客マスタは注文に紐づいていても良いし、単体・独立で存在していても良い
注文についても、顧客マスタに紐づいていても良いし、単体で存在しても良い

顧客マスタに注文が紐づく場合には、複数の注文が顧客に紐づくことができる。
注文テーブルに顧客が紐づく場合には、一つの顧客にしか結びつかない

注文が顧客と紐づかずに独立に存在できるというのは実際のところはありえないと思いますが、システム運用上はその状態もあった方が良いという場合もあるのでこのようになっていると想像します。

投稿2017/09/01 04:02

t_obara

総合スコア5488

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/09/01 04:44

ご回答ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問