sql >> データベース >  >> RDS >> Mysql

関係属性をER図からSQLに変換する

    はい、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であるという事実を見落とし、それを修正しました。申し訳ありません。



    1. 同点の場合のMySQLランク

    2. MySQLGroupByおよびNull値でのグループ化をスキップ

    3. SpringデータリポジトリメソッドでRegexキーワードを使用する方法

    4. メッセージングシステムのデータベースモデル