Ms-access-many-to-many-relationships

提供:Dev Guides
移動先:案内検索

MS Access-多対多の関係

この章では、多対多の関係を理解し​​ましょう。 多対多のリレーションシップを表すには、多くの場合多対多リレーションシップを2つの1対多リレーションシップに分割する、ジャンクションテーブルと呼ばれる3番目のテーブルを作成する必要があります。 そのためには、ジャンクションテーブルも追加する必要があります。 最初に別のテーブル tblAuthers を追加しましょう。

TblAuthers

  • 多対多の関係*を作成しましょう。 複数のプロジェクトに取り組んでいる複数の著者がいます。逆の場合も同様です。 ご存知のように、tblProjectsにはAuthorフィールドがあるため、そのテーブルを作成しました。 このフィールドはもう必要ありません。

TblAuthersの説明

[著者]フィールドを選択し、削除ボタンを押すと、次のメッセージが表示されます。

ダイアログボックス

[はい]をクリックします。 ジャンクションテーブルを作成する必要があります。 次のスクリーンショットに示すように、このジャンクションテーブルには2つの外部キーがあります。

外部キー

これらの外部キーフィールドは、一緒にリンクされた2つのテーブル( tblAuthers および tblProjects )の主キーになります。

Accessで複合キーを作成するには、これらのフィールドの両方を選択し、 table tools design タブから、その主キーを直接クリックすると、これらのフィールドの1つではなく両方がマークされます。

テーブルツールデザイン

これら2つのフィールドの組み合わせが*テーブルの一意の識別子*です。 このテーブルを tblAuthorJunction として保存しましょう。

多対多のリレーションシップをまとめる最後のステップは、*リレーションシップビュー*に戻り、*テーブルの表示*をクリックしてそれらのリレーションシップを作成することです。

上記の3つの強調表示されたテーブルを選択し、[追加]ボタンをクリックして、このダイアログボックスを閉じます。

強調表示されたテーブル

*AuthorID* フィールドをクリックして *tblAuthors* からドラッグし、 *tblAuthorJunction* テーブル *AuthorID* の上に配置します。

TblAuthers Junction

作成する関係は、Accessが1対多の関係と見なす関係です。 参照整合性も強制します。 Cascade Update をオンにして、上のスクリーンショットのように Create ボタンをクリックしてみましょう。

カスケード

*ProjectID* を保持し、 *ProjectID* の上に *tblAuthorJunction* からドラッグアンドドロップします。

参照キー

  • 参照整合性*および*カスケード更新関連フィールド*を強制します。

カスケード更新

以下は多対多の関係です。

多対多