1対1

従業員と個人プロフィールの関係では、各従業員は1件の個人プロフィールレコードのみ持つことができ、各個人プロフィールレコードも1人の従業員にのみ対応します。このような場合、従業員と個人プロフィールは1対1の関係にあります。

1対1の外部キーはソーステーブルまたはターゲットテーブルのどちらに置いてもかまいません。「1つ持つ」ことを表す場合は外部キーをターゲットテーブルに置くのが適しており、「所属関係」を表す場合は外部キーをソーステーブルに置くのが適しています。

上記の例では、従業員は1件の個人プロフィールのみ持ち、個人プロフィールは従業員に属するため、この外部キーは個人プロフィールテーブルに置くのが適しています。

1対1(1つ持つ)

ある従業員が1件の個人プロフィールレコードを持つことを表します。

ER関係

alt text

フィールド設定

alt text

1対1(所属関係)

ある個人プロフィールが特定の従業員に属することを表します。

ER関係

フィールド設定

alt text

パラメーターの説明

Source collection

ソーステーブル。現在のフィールドが存在するテーブルです。

Target collection

ターゲットテーブル。関連付けるテーブルです。

Foreign key

2つのテーブル間の関連を構築するために使用します。1対1の外部キーはソーステーブルまたはターゲットテーブルのどちらに置いてもかまいません。「1つ持つ」ことを表す場合は外部キーをターゲットテーブルに置くのが適しており、「所属関係」を表す場合は外部キーをソーステーブルに置くのが適しています。

Source key <- Foreign key(外部キーがターゲットテーブルにある場合)

外部キー制約が参照するフィールドで、必ず一意である必要があります。外部キーをターゲットテーブルに置く場合は、「1つ持つ」ことを表します。

Target key <- Foreign key(外部キーがソーステーブルにある場合)

外部キー制約が参照するフィールドで、必ず一意である必要があります。外部キーをソーステーブルに置く場合は、「所属関係」を表します。

ON DELETE

ON DELETE は、親テーブルのレコードを削除する際に、関連する子テーブルの外部キー参照をどのように処理するかを定めるルールです。外部キー制約を定義する際のオプションとして使用されます。一般的な ON DELETE オプションには次のものがあります。

  • CASCADE:親テーブルのレコードを削除すると、それに関連する子テーブルのすべてのレコードを自動的に削除します。
  • SET NULL:親テーブルのレコードを削除すると、子テーブル内の関連する外部キー値を NULL に設定します。
  • RESTRICT:デフォルトのオプションです。親テーブルのレコードを削除しようとした際に、関連する子テーブルのレコードが存在する場合、親テーブルのレコードの削除を拒否します。
  • NO ACTION:RESTRICT と似ています。関連する子テーブルのレコードが存在する場合、親テーブルのレコードの削除を拒否します。