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

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

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

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

一対一リレーションシップは、ビジネスの営業に必要なデータを取得できるように、重要な関係を示すために頻繁に使用されます。

一対一リレーションシップとは、2 つのテーブルの情報をつなぐリンクであって、それぞれのテーブルにおいて各レコードが 1 回だけ出現するリンクのことです。たとえば、従業員と従業員が運転する社用車の間の関係は一対一リレーションシップと言えます。各従業員は Employees テーブルに 1 回だけ出現し、各社用車は Company Cars テーブルに 1 回だけ出現します。

一対一リレーションシップは、項目の一覧を含むテーブルがあり、項目に関して取得したい特定の情報が項目の種類によって異なるような場合に使用します。たとえば、一部のユーザーが従業員で、他のユーザーが協力会社である連絡先テーブルを使用している場合があります。従業員については、従業員番号と内線番号、その他の重要な情報がわかるようにする必要があります。協力会社については、会社名、電話番号、料金を知る必要があります。この場合は、Contacts、Employees、Subcontractors という 3 つの独立したテーブルを作成し、Contacts テーブルと Employees テーブルの間、および Contacts テーブルと Subcontractors テーブルの間に一対一リレーションシップを作成します。

一対一リレーションシップを作成するための概要

一対一リレーションシップを作成するには、1 つのテーブルのインデックス (通常は主キー) と、同じ値を共有する別のテーブルのインデックスをリンクします。次に例を示します。

ID を共有する 2 つのテーブルを示す画面のスニペット
Car ID は両方のテーブルに含まれていますが、各テーブルに 1 回だけ出現します。

多くの場合、このリレーションシップを作成する最良の方法は、2 番目のテーブルから最初のテーブルの値を検索することです。たとえば、Employees テーブルの Car ID フィールドをルックアップ フィールドとし、Company Cars テーブルの Car ID インデックスの値を検索します。このようにすると、実際に存在しない車の ID を誤って追加することがありません。

重要: 一対一リレーションシップを作成するときは、リレーションシップに参照データ整合性を適用するかどうかを慎重に決定してください

参照データ整合性は、Access で関連レコードを削除してデータをクリーンに維持するために役立ちます。たとえば、Employees テーブルから従業員を削除した場合は、Benefits テーブルのその従業員の福利厚生レコードも削除します。しかし、この例のように、参照整合性が無意味な場合もあります。従業員を削除しても、Company Cars テーブルから車を削除しないようにする必要があります。車は引き続き会社に属しており、他の従業員に割り当てられるからです。

一対一リレーションシップを作成するための手順

テーブルにルックアップ フィールドを追加して、一対一リレーションシップを作成します (方法については、「テーブルの作成とデータ型の設定」を参照してください)。たとえば、どの車が特定の従業員に割り当てられているかを示すために、Employees テーブルに Car ID を追加します。次に、2 つのフィールド間にリレーションシップを作成するために、ルックアップ ウィザードを使用します。

  1. テーブルを開きます。

  2. [デザイン ビュー] で新しいフィールドを追加し、[データ型] の値を選択した後、[ルックアップ ウィザード] を選択します。

  3. ウィザードは既定で別のテーブルの値を検索するように設定されているので、[次へ] を選択します。

  4. このテーブルに挿入したいキー (通常は主キー) が含まれているテーブルを選択し、[次へ] を選択します。この例では、Company Cars テーブルを選択します。

  5. [選択されたフィールド] ボックスの一覧で、使用するキーが含まれているフィールドを追加します。[次へ] を選択します。

    ルックアップ ウィザード画面のスニペット
  6. 並べ替え順序を設定し、希望する場合は、フィールドの幅を変更します。

  7. 最後の画面では、[データ整合性を有効にする] チェック ボックスをオフにし、[完了] を選択します。

さらに詳しく

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

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

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

Excel のトレーニング

Outlook のトレーニング

リレーショナル データベースでは、一方のテーブルの 1 つのレコードが他方のテーブルの 1 つのレコードのみに関連付けられている場合、一対一リレーションシップが存在します。

このタイプのリレーションシップは、一対多リレーションシップまたは多対多リレーションシップのように頻繁に使用されることはありませんが、仕組みを理解しておくと便利です。

では、このリレーションシップを作成する手順を説明します。

この例では、社用車のデータベース テーブルと、それを運転する従業員のテーブルがあります。

この会社では、1 種類の車しか使用していないので、誰がどの車を運転するかを識別するには、[免許証番号] フィールドを使用します。

このデモでは、各従業員に 1 台の車が割り当てられていることにします。ここで、手順の説明を始める前に、新しい用語 "インデックス" について説明します。

Access は、データベース内のフィールドにインデックスを付け、それを本の索引と同様に使用して、情報をすばやく検索します。

インデックスは既定によりオンですが、動作を変更したり、オフにしたりすることができます。

最初に一対多リレーションシップを作成し、両方のテーブルでキー フィールドのインデックスを変更することによって一対一リレーションシップを作成するので、これは重要です。

では、[ルックアップ ウィザード] を使用して、リレーションシップの作成を開始しましょう。

他方のテーブル、つまり [社用車] テーブルから値を取得します。

[免許証番号] フィールドを使用しますが、ここで使用する値の数は少ないので、並べ替え順序を特に設定する必要はありません。

キーの列を非表示にし、[社用車] フィールドを呼び出します。

ここでは、参照整合性を有効にしません。有効にしないのは、おそらくこの場合だけです。有効にしないことにより、従業員を削除しても、車が誤って削除されることはありません。

[完了] を選択します。外部キーが作成されたので、免許証番号を簡単に検索できます。

次に、フィールドが選択されていることを確認します。[フィールド]、[インデックス]、[固有] の順に選びます。

[社用車] テーブルに移動して、主キーが選択されていることを確認します。これも、[インデックス] と [固有] がオンになっています。これは、[オートナンバー型] フィールドなので、このように設定されています。

[デザイン ビュー] の下方にある [フィールド プロパティ] ウィンドウには、インデックスのプロパティが表示されます。

プロパティの一覧を開くと、3 つの値が表示されます。一対一リレーションシップでは、このうちの 2 つの値、[いいえ] または [はい (重複なし)].のどちらかを使用できます。

以上で、データベース内に一対一リレーションシップが作成されました。

[リレーションシップ] ウィンドウを確認すると、作成したリレーションシップが、一対多または多対多のリレーションシップを示す数字の 1 や無限大記号のない直線だけで示されています。

また、このデータベースには、3 種類すべてのリレーションシップが作成されていることも確認できます。

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

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

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

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

×