多対多リレーションシップの割り当て (Visual Database Tools)
適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAnalytics Platform System (PDW)
多対多リレーションシップを使用すると、テーブルの各行を他のテーブルの複数の行と関連付けることができます。 たとえば、authors
テーブルと titles
テーブルの間に多対多のリレーションシップを作成して、各著者をすべての書籍に一致させ、各書籍をすべての著者に一致させることができます。 一方のテーブルから一対多リレーションシップを作成すると、各著作には著者が 1 人しか存在しない、または各著者には 1 冊の著作しかないという情報が誤って示されることになります。
テーブル間の多対多リレーションシップは、それぞれのデータベースで交差テーブルによって実現できます。 交差テーブルには、関連付ける 2 つのテーブルの各主キー列が格納されます。 これを使用して、2 つのテーブルの各主キー列から、交差テーブル内の対応する列へのリレーションシップを作成します。 pubs データベースでは、 titleauthor
テーブルが交差テーブルです。
テーブル間で多対多リレーションシップを作成するには
データベース ダイアグラムで、多対多リレーションシップを作成する各テーブルを追加します。
ダイアグラムを右クリックし、ショートカット メニューの [新しいテーブル] をクリックして 3 つ目のテーブルを作成します。 これが交差テーブルになります。
[名前の選択] ダイアログ ボックスで、システムによって割り当てられたテーブル名を変更します。 たとえば、
titles
テーブルとauthors
テーブルとの間の交差テーブルは、現在titleauthors
という名前です。2 つのテーブルの各主キー列を交差テーブルにコピーします。 他の列も、他のテーブルに追加するのと同様に交差テーブルに追加できます。
交差テーブルで、他の 2 つのテーブルの主キーをすべて含めて主キーを設定します。 詳細については、主キーの作成方法に関する記事を参照してください。
2 つの各主テーブルと交差テーブルとの間に一対多リレーションシップを定義します。 交差テーブルは、作成するリレーションシップの "多" 側に配置します。 詳細については、テーブル間のリレーションシップの作成に関する記事を参照してください。
Note
データベース ダイアグラムで交差テーブルを作成しても、関連テーブルから交差テーブルにデータは挿入されません。 テーブルにデータを挿入する方法については、「方法 : 複製挿入クエリを作成する (Visual Database Tools)」を参照してください。