演習
一対一リレーションシップとは
一対一リレーションシップは、ビジネスの営業に必要なデータを取得できるように、重要な関係を示すために頻繁に使用されます。
一対一リレーションシップとは、2 つのテーブルの情報をつなぐリンクであって、それぞれのテーブルにおいて各レコードが 1 回だけ出現するリンクのことです。 たとえば、従業員と従業員が運転する社用車の間の関係は一対一リレーションシップと言えます。 各従業員は Employees テーブルに 1 回だけ出現し、各社用車は Company Cars テーブルに 1 回だけ出現します。
一対一リレーションシップは、項目の一覧を含むテーブルがあり、項目に関して取得したい特定の情報が項目の種類によって異なるような場合に使用します。 たとえば、一部のユーザーが従業員で、他のユーザーが協力会社である連絡先テーブルを使用している場合があります。 従業員については、従業員番号と内線番号、その他の重要な情報がわかるようにする必要があります。 協力会社については、会社名、電話番号、料金を知る必要があります。 この場合は、Contacts、Employees、Subcontractors という 3 つの独立したテーブルを作成し、Contacts テーブルと Employees テーブルの間、および Contacts テーブルと Subcontractors テーブルの間に一対一リレーションシップを作成します。
一対一リレーションシップを作成するための概要
一対一リレーションシップを作成するには、1 つのテーブルのインデックス (通常は主キー) と、同じ値を共有する別のテーブルのインデックスをリンクします。 次に例を示します。
多くの場合、このリレーションシップを作成する最善の方法は、セカンダリ テーブルで最初のテーブルの値を検索することです。 たとえば、Employees テーブルの Car ID フィールドをルックアップ フィールドとし、Company Cars テーブルの Car ID インデックスの値を検索します。 このようにすると、実際に存在しない車の ID を誤って追加することがありません。
重要
一対一リレーションシップを作成するときは、リレーションシップに参照データ整合性を適用するかどうかを慎重に決定してください。
参照データの整合性とは、関連するレコードを削除することで、Access がデータをクリーンに保つのに役立ちます。 たとえば、[従業員] テーブルから従業員を削除すると、その従業員の福利厚生レコードも [福利厚生] テーブルから削除されます。 しかし、この例のような一部のリレーションシップでは、参照整合性は意味をなさない。従業員を削除した場合、その車は会社に属し、他のユーザーに割り当てられるため、Company Cars テーブルからその車両を削除したくありません。
一対一リレーションシップを作成するための手順
テーブルにルックアップ フィールドを追加して、一対一リレーションシップを作成します。 (方法については、「 テーブルの作成とデータ型の設定」を参照してください)。たとえば、特定の従業員に割り当てられている車を示すには、"車 ID" を "従業員" テーブルに追加します。 次に、ルックアップ ウィザードを使用して、2 つのフィールド間のリレーションシップを作成します。
テーブルを開きます。
[デザイン ビュー] で新しいフィールドを追加し、[データ型] の値を選択した後、[ルックアップ ウィザード] を選択します。
ウィザードは既定で別のテーブルの値を検索するように設定されているので、[次へ] を選択します。
このテーブルに挿入したいキー (通常は主キー) が含まれているテーブルを選択し、[次へ] を選択します。 この例では、Company Cars テーブルを選択します。
[選択されたフィールド] ボックスの一覧で、使用するキーが含まれているフィールドを追加します。 [次へ] を選択します。
並べ替え順序を設定し、希望する場合は、フィールドの幅を変更します。
最後の画面では、[データ整合性を有効にする] チェック ボックスをオフにし、[完了] を選択します。