はい、Student
とSupervisor
の多対多の関係を表すMeeting
エンティティを作成する必要があります。そのテーブルでは、それぞれのテーブルに対応する外部キーを使用して、これらのテーブルに関連付けることができます。あなたはまた、Project
とSupervisor
間Supervise
のために同じことをするだろう
Create table Meeting {
id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
student_id INT NOT NULL,
supervisor_id INT NOT NULL,
//rest of the fields...
FOREIGN KEY (student_id) REFERENCES Student(id)
FOREIGN KEY (supervisor_id) REFERENCES Supervisor(id)
}
:SQLでは、このようなものに見えるかもしれません。また、あなたのミーティングテーブルにコンポジットキーと呼ばれるものを使用することもできます。私はそれが個人的な好みになると思います。私はこれがあなたのデータベースに依存する構文であると言っているわけではありません、これは正しい方向にあなたを指す例にすぎません。それが役に立てば幸い。
また、あなたのダイアグラム(これはクラスのためだと思います)では、Visioや視覚的パラダイムなどのソフトウェアを調べてER図を作成することができます。ほとんどの人はあなたの現在の図を理解することができますが、それは正しいモデリングではありません。
は楽しみのために私はあなたのテーブルに基づいて図を作った:彼らは多くの関係に多くがある場合 ![enter image description here](https://i.stack.imgur.com/drNu5.png)
あなたはSupervisor
とProject
間のエンティティをしたいと思います。これはassociative entity
と呼ばれます。私はSupervisorProject
というラベルをつけました。もう少し明確です。
編集 学生とプロジェクトが多人数であったことを見落として、申し訳ありません。
出典
2013-12-11 18:54:08
Dan
ERDを処理できるMacまたはiOSの汎用描画アプリケーションの場合は、[OmniGraffle](http://www.OmniGroup.com/omnigraffle/)をご覧ください。 –
素晴らしい - 「監督」を実体にするメリットをもう少し広げることができますか? – Cohagen