本文へスキップ

〒434-0038 浜松市浜北区貴布祢265-8 イトリエ1F

リレーションシップの作成HEADLINE

リレーションシップとは

リレーションシップとは2つのテーブルの結びつきを設定するものです。リレーションシップの設定ができていないと、次項で説明するクエリで 複数のテーブルを連結した仮想表を作成することができません。

今回は、以下のようなリレーションシップを設定します。
テーブル名フィールド名フィールド名テーブル名
得意先得意先コード得意先コード受注
受注受注コード受注コード受注明細
商品商品コード商品コード受注
商品分類分類コード分類コード商品

この表の左側に書かれているテーブルのフィールドにはいずれも主キーが設定されています。それに対して右側に書かれている表のフィールドには主キーは 設定されていません。
おおざっぱに言うならば2つのテーブルの共通フィールドをリレーションシップで結ぶのですが、片方は主キー、もう片方は外部キー(主キーが設定されていない)に なっています。

ここでリレーションシップを結ぶ2つのフィールドはデータ型、フィールドサイズが一致していなければなりません。リレーションシップが結べない場合、 まずここを調べてください。

リレーションシップの設定方法

図1
リレーションシップを設定する場合、「データベースツール」タブの「リレーションシップ」ボタンをクリックします。リレーションシップのウィンドウとともに、 「テーブルの表示」ダイアログボックスが表示されます(「テーブルの表示」が出ない場合は、ウィンドウ上で右クリックするしショートカットメニューから 「テーブルの表示」をクリックすれば表示されます)。

「テーブルの追加」ではリレーションシップを設定するテーブルを表示させます。今回はすべてのテーブルに設定しますので、すべてのテーブルを選択 (CtrlキーあるいはShiftキーを使って選択します)して「追加」ボタンをクリックします。その後「閉じる」ボタンで閉じておきましょう。

表示された各テーブルはタイトルバー(テーブル名が表示されている部分)をドラッグすれば移動できるので、設定しやすい位置に移動してください。

図2
「得意先」テーブルの「得意先コード」フィールドと、「受注」テーブルの「得意先コード」フィールドにリレーションシップを結ぶ場合、「得意先」テーブルの 「得意先コード」フィールドをドラッグして、相手側である「受注」テーブルの「得意先コード」フィールドの上でドロップします(図2)。
「リレーションシップ」ウィンドウが表示されます。ウィンドウの上段左側(こちらが主キー側になります)が「得意先」テーブルの「得意先コード」、 上段右側が「受注」テーブルの「得意先コード」フィールドになっていることを確認してください。
確認出来たら、ダイアログボックス左下の参照整合性欄にチェックを入れてた上で、右上の「作成」ボタンをクリックします。

図3
同様にすべてのリレーションシップを設定します(図3)。なお、リレーションシップを設定すると共通フィールドが線で結ばれますが、主キー側には "1" が、 外部キー側には "∞" が表示されます(参照整合性にチェックを入れた場合)。

なお、設定を誤った場合、リレーションシップの線の上でダブルクリックすると設定の画面を再度呼び出すことができます。
またリレーションシップを削除する場合は、線の上でクリックして選択したうえで Deleteキーを押します。




参照整合性

リレーションシップの設定時に「参照整合性」にチェックを付けました。参照整合性とは、主キー側(今回では「得意先」テーブルの「得意先コード」)に 入力されていない値を、外部キー側(今回では「受注」テーブルの「得意先コード」)で入力できない設定になります。
これは外部キー側で誤ったデータが入力されるのを防ぐ働きがあります。

また「フィールドの連鎖更新」「レコードの連鎖削除」というものもありました。これは主キー側の値が変更された場合に外部キー側の同じ値に変更します、 あるいは主キー側の値が削除された場合に外部キー側のデータも削除します、という設定です。
今回は「参照整合性」だけを指定しました。