2016-04-05 4 views
0

データベースデザイン(ER図)のCrowの足記法を理解しようとしています。 STUDENT(エンティティ/テーブル)が複数のコース(COURSES_ENROLLEDテーブル/エンティティ)に登録できるシナリオのER図を作成したいと思います。ここに記載されているシナリオで適用可能なカーディナリティ

私は以下のER図を作成しました。今

enter image description here

、このシナリオである "コネクタ記号は"、(1)または(2)の付いた1該当するのでしょうか?どんな説明も大きな助けになるでしょう。

答えて

1

エンティティCOURSE(には外部キーとしてcourseIdがあるため)もあるとします。だから、COURSES_ENROLLEDはちょうど1人の学生を、その学生が登録したコースに正確にリンクさせているのですよね?

これは、ダイアグラムで代替(1)で表されます。各COURSES_ENROLLEDインスタンスはちょうど1つのSTUDENTインスタンスを参照しますが、各生徒は多くのインスタンスを他の方法で見ることができます。

中間実体なしで直接STUDENTからCOURSEにリンクした場合は、あなたの選択肢(2)が適切です。それらの間では、多重度はm:nであるため、両端にカラスの足を持つことになります。しかし、courseIdは正しいエンティティの主キーとなり、COURSEと呼びます。

ちなみに、(1)と(2)の両方で表現され、学生が少なくとも1つのコースを登録する必要があるかどうかをチェックすることは、機能要件に関して現実的です。おそらく、各生徒は少なくともの時点で少なくとも1つのコースを登録しますが、これをデータモデルの制約として含める場合は、のすべての時間をに保持する必要があります。だから、あなたの現在のモデルは、彼女を一度に少なくとも一つのコースに結びつけることなく生徒を作ることだけを許しません。

+0

ご返信ありがとうございます。 (1)は1:mの関係を意味しますか、基本的には、1人の生徒が複数のコースに登録できるようにしてください。これは私が欲しいものですから。 – CuriousMind

+1

学生1:nコース数n:1コース 学生は多数のコースを登録することができ、コースは多くの学生を雇うことができます。 – TAM

関連する問題