多対多
履修登録システムには、学生とコースという2つのエンティティがあります。1人の学生は複数のコースを履修でき、1つのコースも複数の学生が履修できます。これは多対多の関係です。リレーショナルデータベースで学生とコースの多対多関係を表現するには、通常、中間テーブル(履修登録テーブルなど)を使用します。このテーブルには、各学生がどのコースを選択したか、また各コースをどの学生が履修しているかを記録できます。このような設計により、学生とコースの多対多関係を適切に表現できます。
ER関係は次のとおりです。

フィールド設定

パラメータの説明
Source collection
ソースコレクション。現在のフィールドが属するテーブルです。
Target collection
ターゲットコレクション。関連付けるテーブルです。
Through collection
中間コレクション。2つのエンティティ間に多対多の関係が存在する場合、この関係を格納するために中間テーブルを使用します。中間テーブルには2つの外部キーがあり、2つのエンティティ間の関連を保持します。
Source key
外部キー制約が参照するフィールドです。一意性を備えている必要があります。
Foreign key 1
中間テーブルのフィールドで、ソーステーブルとの関連を確立するために使用します。
Foreign key 2
中間テーブルのフィールドで、ターゲットテーブルとの関連を確立するために使用します。
Target key
外部キー制約が参照するフィールドです。一意性を備えている必要があります。
ON DELETE
ON DELETEとは、親テーブルのレコ ードを削除した際に、関連する子テーブルの外部キー参照をどのように処理するかを定めるルールです。外部キー制約を定義する際のオプションの1つです。一般的なON DELETEオプションには、次のものがあります。
- CASCADE:親テーブルのレコードを削除すると、それに関連する子テーブルのすべてのレコードを自動的に削除します。
- SET NULL:親テーブルのレコードを削除すると、子テーブルにある関連する外部キーの値をNULLに設定します。
- RESTRICT:デフォルトのオプションです。親テーブルのレコードを削除しようとした際に、関連する子テーブルのレコードが存在する場合、親テーブルのレコードの削除を拒否します。
- NO ACTION:RESTRICTと同様に、関連する子テーブルのレコードが存在する場合、親テーブルのレコードの削除を拒否します。

