ホームページ > データベース > mysql チュートリアル > 1 つの外部キーが異なるテーブルの複数の主キーを参照できますか?

1 つの外部キーが異なるテーブルの複数の主キーを参照できますか?

Patricia Arquette
リリース: 2025-01-11 09:15:43
オリジナル
626 人が閲覧しました

Can a Single Foreign Key Reference Multiple Primary Keys in Different Tables?

外部キーが異なるテーブル間で複数の主キーを参照することは可能ですか?

データベース設計に関するよくある質問には、単一の外部キー列を使用して複数のテーブルから主キーを参照することが含まれます。 例で説明しましょう:

データベース: 従業員情報

テーブル:

  • employees_ce (主キー: empid)
  • employees_sn (主キー: empid)
  • deductions (外部キー: id)

id テーブルの deductions 外部キーは、empidemployees_ce の両方の employees_sn 主キーを参照できますか?

解決策:

異なるテーブル間で単一の外部キーを複数の主キーにリンクすることは直感的に思えるかもしれませんが、標準的なデータベース設計ではこれは許可されていません。ベスト プラクティスは、関連エンティティを接続するリンク テーブルを導入することです。

データベース構造の改善:

  • employees (主キー: id)
  • employees_ce (外部キー: id)
  • employees_sn (外部キー: id)
  • deductions (外部キー: employee_id)

この改訂された構造では、主キー (employees) を持つ単一の id テーブルを使用して、タイプに関係なくすべての従業員を表します。 employees_ceemployees_sn は、idemployees 列を参照する外部キーを使用し、それぞれの従業員カテゴリにリンクします。 deductions テーブルの外部キー employee_id は、employees テーブルの主キーを指します。このアプローチにより、データの整合性が保証され、テーブル間のクエリと結合が簡素化されます。

以上が1 つの外部キーが異なるテーブルの複数の主キーを参照できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート