外部キーが異なるテーブル間で複数の主キーを参照することは可能ですか?
データベース設計に関するよくある質問には、単一の外部キー列を使用して複数のテーブルから主キーを参照することが含まれます。 例で説明しましょう:
データベース: 従業員情報
テーブル:
employees_ce
(主キー: empid
)employees_sn
(主キー: empid
)deductions
(外部キー: id
)id
テーブルの deductions
外部キーは、empid
と employees_ce
の両方の employees_sn
主キーを参照できますか?
解決策:
異なるテーブル間で単一の外部キーを複数の主キーにリンクすることは直感的に思えるかもしれませんが、標準的なデータベース設計ではこれは許可されていません。ベスト プラクティスは、関連エンティティを接続するリンク テーブルを導入することです。
データベース構造の改善:
employees
(主キー: id
)employees_ce
(外部キー: id
)employees_sn
(外部キー: id
)deductions
(外部キー: employee_id
)この改訂された構造では、主キー (employees
) を持つ単一の id
テーブルを使用して、タイプに関係なくすべての従業員を表します。 employees_ce
と employees_sn
は、id
の employees
列を参照する外部キーを使用し、それぞれの従業員カテゴリにリンクします。 deductions
テーブルの外部キー employee_id
は、employees
テーブルの主キーを指します。このアプローチにより、データの整合性が保証され、テーブル間のクエリと結合が簡素化されます。
以上が1 つの外部キーが異なるテーブルの複数の主キーを参照できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。