はい、Meeting
を作成する必要があります Student
間の多対多の関係を表すエンティティ およびSupervisor
。その中で、それらのそれぞれのテーブルに対応する外部キーを使用して、それらのテーブルに関連付けることができます。 SQLでは、次のようになります。
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)
}
Supervise
についても同じことを行います Project
の間 およびSupervisor
。また、会議テーブルで複合キーと呼ばれるものを使用することもできます。これは個人的な好みによるものだと思います。私は通常、多対多の関係を表すときにこのように使用します。これが使用する構文であると言っているのではなく、データベースによって異なります。これは、正しい方向を示すための単なる例です。お役に立てば幸いです。
また、ダイアグラム(これはクラス用だと思います)については、Visioやビジュアルパラダイムなどのソフトウェアを調べてERダイアグラムを作成することをお勧めします。ほとんどの人はあなたの現在の図を理解することができますが、それは正しいモデリングではありません。
楽しみのために、私はあなたのテーブルに基づいて図を作成しました:
Supervisor
の間にエンティティが必要です およびProject
それらが多対多の関係である場合。これはassociative entity
と呼ばれます 。私は自分のSupervisorProject
にラベルを付けました もう少し明確にするためです。
編集 学生とプロジェクトが多対1であるという事実を見落とし、それを修正しました。申し訳ありません。