ホームページ > データベース > mysql チュートリアル > 外部キーは 2 つの別個のテーブルの主キーを同時に参照できますか?

外部キーは 2 つの別個のテーブルの主キーを同時に参照できますか?

Linda Hamilton
リリース: 2025-01-11 08:03:45
オリジナル
1062 人が閲覧しました

Can a Foreign Key Reference Primary Keys from Two Separate Tables Simultaneously?

複数のテーブルにわたる外部キー参照: 構造化アプローチ

この記事では、「employees」データベース内のemployees_ceテーブルとemployees_snテーブルの両方の主キーを参照する控除テーブルに外部キーを作成するという課題について説明します。 従業員_ce と従業員_sn の両方に一意の主キーがあります。 直接の二重外部キー参照は可能ですか?

効率的なソリューション: 階層設計

最適な解決策には、従業員の階層構造を反映するためにデータベースを再構築することが含まれます。

  1. 従業員階層: 従業員を親クラスとして表示し、employees_ce およびemployees_sn をサブクラスとして表示します。

  2. データベース テーブルの設計: 3 つのテーブル構造を作成します:

    • employees (id, name, ...): 共通の従業員属性を保持する中央テーブル。 id は主キーです。
    • employees_ce (id, ce_specific_data, ...):employees_ce に固有のデータを保存します。 id は、employees.id を参照する外部キーです。
    • employees_sn (id, sn_specific_data, ...):employees_sn に固有のデータを格納します。 id は、employees.id を参照する外部キーです。
  3. 外部キー関係: 外部キー制約の確立:

    • employees_ce.id 参照 employees.id
    • employees_sn.id 参照 employees.id
  4. 控除テーブル: deductions テーブルには、employee_id 列を参照する単一の外部キー employees.id が含まれます。

この階層モデルは参照整合性を保証し、さまざまな従業員タイプのデータを効率的に管理します。 これにより、直接二重外部キー参照を試みることによる複雑さと潜在的な不一致が回避されます。 deductions テーブル内の単一の外部キーは、関連する従業員レコードへの明確で明確なリンクを提供します。

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

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