*

リレーションシップ

参照整合性を設定できない場合

参照整合性を設定できない場合

参照整合性を設定するには、双方のテーブルの結合フィールドが以下の条件を満たしている必要がある。

  1. 少なくとも、一方が主キーであるか「インデックス」プロパティで「はい(重複なし)」が設定されている。
  2. データ型が同じ(フィールド名は同じである必要はない)
  3. 数値型の場合、フィールドサイズが同じ

ただし、オートナンバー型と数値型のフィールド間の場合は、双方のフィールドサイズを長整数型にすることによって参照整合性を設定できる。

上記の条件が揃っているにもかかわらず、参照整合性の設定時にエラーが発生する場合は、既存のレコードが矛盾をおこしている。

一側テーブルに存在しないデータが多側テーブル結合フィールドに入力されていないかどうかの確認をおこなう。

結合の種類

  • 内部結合
    共通のフィールドに同じ値をもつレコードだけが表示される。
  • 左外部結合
    左(主)のテーブルのすべてレコードを抽出して右(関連)のテーブルからは共通のフィールドに同じ値を持つレコードだけが表示される。
  • 右外部結合
    右(関連)のテーブルのすべてのレコードを抽出して、左(主)のテーブルから共通のフィールドに同じ値を持つレコードだけが表示される。

 

 ※一対多のリレーションシップでは、一側のテーブルを「左」、多側のテーブルを「右」と表現される。

参照整合性

参照整合性とは

  • 主テーブルに主キーに存在しない値を関連テーブルに入力できない。
  • 関連テーブルに主テーブルの主キーが入力されている場合、主テーブルでその主テーブルの値を変更できない。
  • 関連テーブルに主テーブルの主キーが入力されている場合、主テーブルでその主キーのレコードを削除できない。

「一対多」「一対一」リレーションシップ

  • 「一対多」
    主キーが設定されているフィールドと主キーでないフィールドを関連付け
  • 「一対一」
    主キーが設定されているフィールド同士で関連付け