Accessでお仕事 単一テーブルの再帰リレーションシップを作成する

単一テーブルの再帰リレーションシップを作成する

同じテーブル内の 2 つの列をリンクするには、再帰リレーションシップを作成します。たとえば、employee テーブルに、社員 ID を格納する emp_id 列と管理職 ID を格納する mgr_id 列があるとします。管理職は社員でもあるので、同じテーブル内でリレーションシップ ラインを作成して、この 2 つの列を関連付ける必要があります。このリレーションシップにより、テーブルに追加した各管理職 ID は既存の社員 ID に必ず対応するようになります。

リレーションシップを作成するには、テーブルに主キーまたは UNIQUE 制約を定義しておく必要があります。主キー列は、テーブル内の対応する列に関連付けます。リレーションシップを作成すると、対応する列がテーブルの外部キーとなります。

再帰リレーションシップを作成するには

  1. データベース ダイアグラム内で、ほかの列に関連付ける列の行セレクタ 行セレクタ を選択します。

  2. マウス ポインタを行セレクタに合わせ、マウス ポインタをテーブルの外側にドラッグして、ラインを表示します。

  3. ラインを同じテーブルにドラッグします。

  4. マウスのボタンを離します。[リレーションを作成] ダイアログ ボックスが表示されます。主キー列がドラッグ先の非キー列に関連付けられます。

  5. 関連付ける 2 つのテーブルが [主キー テーブル] 一覧と [外部キー テーブル] 一覧にそれぞれ表示されていることを確認します。

  6. [OK] を選択すると、リレーションシップが作成されます。

テーブルに対してクエリを実行する場合には、自己結合が再帰リレーションシップに相当します。結合を使ったテーブルのクエリの詳細については、「複数のテーブルに対してクエリを実行する」を参照してください。