リレーションシップを使用する

多対多リレーションシップを作成する

注:  最新のヘルプ コンテンツをできるだけ早く、お客様がお使いの言語で提供したいと考えております。 このページは、自動翻訳によって翻訳されているため、文章校正のエラーや不正確な情報が含まれている可能性があります。私たちの目的は、このコンテンツがお客様の役に立つようにすることです。お客様にとって役立つ情報であったかどうかを、このページの下部でお知らせください。 簡単に参照できるように、こちらに 英語の記事 があります。

お使いのブラウザーではビデオがサポートされていません。Microsoft Silverlight、Adobe Flash Player、Internet Explorer 9 のいずれかをインストールしてください。

多対多リレーションシップとは

多対多リレーションシップは、最もよく使われるテーブル リレーションシップです。このリレーションシップによって、営業担当者がどの顧客に連絡したか、どの製品が顧客の注文に含まれているかなどの重要な情報を取得できます。

多対多リレーションシップは、1 つのテーブル内の 1 つ以上の項目が、別のテーブル内の 1 つ以上の項目に対して関係を持つことができる場合に成立します。次に例を示します。

  • Order テーブルには、複数の顧客からの注文が含まれています (顧客は Customers テーブルに一覧表示されます)。1 件の顧客から複数の注文を受ける場合があります。

  • Products テーブルには販売する個々の製品が含まれています。それらの製品は Order テーブルにある多数の注文の一部です。

  • 1 つの注文には、特定の製品の 1 つのインスタンス (または複数のインスタンス)、複数の製品の 1 つのインスタンス (または複数のインスタンス)、またはその両方が含まれます。

たとえば、顧客である Elizabeth Andersen の注文番号 1012 には、製品 12 と 15 が 1 個ずつと、製品 30 が 5 個含まれていることがあります。

多対多リレーションシップを作成する

多対多リレーションシップの作成方法は、一対一または一対多のリレーションシップの作成方法とは異なります。一対一または一対多のリレーションシップの場合は、適切なフィールドを線でつなぐだけです。多対多リレーションシップを作成するには、新しいテーブルを作成して他の 2 つのテーブルを結合する必要があります。この新しいテーブルは中間 テーブルと呼ばれます (または、リンク テーブルや交差テーブルと呼ばれる場合もあります)。

前に説明したシナリオでは、各項目に受注した注文、Order テーブルにある ID、Products テーブルにある ID を含むレコードを持つ Order Details テーブルを作成します。そのテーブルに、2 つのテーブルのキーを組み合わせて主キーを作成します。

シナリオでは、Elizabeth Andersen の注文番号 1012 は、製品 12、15、および 30 で構成されます。つまり、Order Details のエントリは次のようになります。

受注 ID

プロダクト ID

1012

12

1012

15

1012

[エンタープライズ日付 30

Elizabeth は製品 12 と 15 を 1 個ずつと、製品 30 を 5 個注文しました。1012 と 30 を含む別の行を追加することはできません。なぜなら、Order ID と Product ID の組み合わせが主キーになっていて、主キーは必ず一意である必要があるためです。代わりに Order Details テーブルに Quantity フィールドを追加します。

受注 ID

プロダクト ID

Quantity

1012

12

1

1012

15

1

1012

[エンタープライズ日付 30

5

中間テーブルを作成する

  1. [作成]、[テーブル] の順に選択します。

  2. [保存] 保存 を選択します。

  3. [テーブル名] に、わかりやすいタイトルを入力します。テーブルの目的を示すために、テーブル名に junction (交差) または intermediate (中間) を含めることができます。

中間テーブルのフィールドを作成します。

最初のテーブルの列として、Access で自動的に ID フィールドが追加されます。多対多リレーションシップにおける最初のテーブルの ID に一致するように、そのフィールドを変更します。たとえば、最初のテーブルが Order ID と呼ばれる Orders テーブルであり、主キーが番号である場合は、新しいテーブルの ID フィールドを Order ID に変更し、データ型として [数値] を使用します。

  1. [データシート ビュー] で列見出しの [ID] を選択し、フィールドの新しい名前を入力します。

  2. 名前を変更したフィールドを選択します。

  3. [フィールド] タブの [データ型] で、元のテーブルのフィールドに一致するようにデータ型を選択します ([数値] や [短いテキスト] など)。

  4. [クリックして追加] を選択し、2 番目のテーブルの主キーに一致するデータ型を選択します。既に選択されている列見出しで、2 番目のテーブルの主キー フィールドの名前を入力します (Product ID など)。

  5. 品目の数量など、これらのレコードに関するその他の情報を追跡する必要がある場合は、追加のフィールドを作成します。

主 ID フィールドを結合する

2 つのテーブルの結合したい ID を含むフィールドを作成したので、次に、それらの ID に基づく主キーを中間テーブルに作成します。

  1. [デザイン ビュー] で中間テーブルを開きます。

  2. ID が含まれている両方の行を選択します (前の手順を実行した場合、それらの行は先頭の 2 行です)。

  3. [デザイン]、[主キー.
    ] の順に選択します。両方の ID フィールドの横にキーのアイコンが表示されます。

    テーブル内の主キーを示すスクリーンショット

3 つのテーブルを接続して多対多リレーションシップを作成する

多対多リレーションシップを作成するには、各テーブルの主キー フィールドと、中間テーブルの対応するフィールド間に、一対多のリレーションシップを作成します。これを行う方法の詳細については、「テーブル間のリレーションシップの使用を開始する」を参照してください。

完了すると、リレーションシップは次のようになります。

3 つのデータベース テーブル間のつながりを示すスクリーンショット

さらに詳しく

テーブルのリレーションシップの概要

リレーションシップを作成する

リレーションシップを削除する

Excel のトレーニング

Outlook のトレーニング

テーブル A の 1 つの項目をテーブル B の多数の項目に関連付けることができ、その逆も可能な場合は、テーブル間で多対多リレーションシップを使用します。たとえば、複数の注文に 1 つの製品が表示され、1 つの注文には複数の製品が含まれることがあります。

このデモでは、データベースを基本的な注文管理システムに展開し、製品テーブルと注文テーブルを使用します。

ここでは、接合テーブルと複合キーについて説明します。また、これらを他のテーブルと組み合わせて使用して多対多リレーションシップを作成する方法についても説明します。

多対多リレーションシップを作成するには、まず新しいテーブルを作成します。

このテーブルを "中間テーブル" と呼びます。これを使用して、リレーションシップに関係する他のテーブルのデータを保存します。

中間テーブルは、"リンク" テーブルまたは "接合" テーブルとも呼ばれます。

次に、接合テーブルと、リレーションシップに関係する他のテーブルとの間に一対多リレーションシップのペアを作成します。

その一環として、これらの両方のフィールドを接合テーブルの主キーとして識別する必要があります。これは、"複合キー" になります。

[デザイン ビュー] で接合テーブルを作成します。[作成]、[テーブル デザイン] の順に選びます。これが、新しい空のテーブルです。

それでは、製品テーブルと注文テーブルを開きましょう。

両方のテーブルの主キーを見てみましょう。製品テーブルは、"製品 ID" という名前の [オートナンバー型] フィールドを使用します。

注文テーブルの主キーは、"注文 ID" という名前で、これも [オートナンバー型] フィールドです。

結合テーブルに戻り、製品 ID を入力します。[] を選択して、注文 ID を入力し、もう一度 [] を選択します。

次に、両方のフィールドを選びます。これを行うには、一方のフィールドの横にあるグレーのボックスにポインターを置き、ドラッグします。

両方のフィールドを選択したら、リボンで [主キー] を選びます。これで、接合テーブルの複合キーが作成されます。

複合キーに両方のフィールドを含めることにより、各注文と各注文内のすべての項目が一意に識別されます。

Ctrl キーを押しながら S キーを押して、接合テーブルを保存し、"注文の詳細" と呼びます。

これでリレーションシップを作成できるようになりました。まず、開いているすべてのテーブルを閉じます。[データベース ツール] を選択し、[リレーションシップ] を選択します。

[デザイン] タブの [テーブルの表示] を選択します。"注文の詳細" テーブル、"注文" テーブル、"製品" テーブルを追加します。ダイアログ ボックスを閉じます。

テーブルを配置します。注文の詳細テーブル、つまり接合テーブルは中央に置きます。注文テーブルの [注文 ID] フィールドを接合テーブルにドラッグします。

[リレーションシップの編集] ダイアログ ボックスで、[参照整合性] を選択し、[作成] を選択して、リレーションシップを作成します。

[製品 ID] フィールドについても同じ手順を行います。[参照整合性] を選択し、[作成] を選択して完了します。

Ctrl キーを押しながら S キーを押して、リレーションシップ ダイアグラムのレイアウト変更を保存します。

以上で、既存のテーブルと接合テーブルおよび複合キーを使用して、Access データベースに多対多リレーションシップが作成されました。

Office のスキルを磨く
トレーニングの探索
新機能を最初に入手
Office Insider に参加する

この情報は役に立ちましたか?

ご意見をいただきありがとうございます。

フィードバックをお寄せいただき、ありがとうございます。Office サポートの担当者におつなぎいたします。

×