ホームページ >データベース >mysql チュートリアル >外部キーは 2 つの別個のテーブルの主キーを同時に参照できますか?
複数のテーブルにわたる外部キー参照: 構造化アプローチ
この記事では、「employees」データベース内のemployees_ceテーブルとemployees_snテーブルの両方の主キーを参照する控除テーブルに外部キーを作成するという課題について説明します。 従業員_ce と従業員_sn の両方に一意の主キーがあります。 直接の二重外部キー参照は可能ですか?
効率的なソリューション: 階層設計
最適な解決策には、従業員の階層構造を反映するためにデータベースを再構築することが含まれます。
従業員階層: 従業員を親クラスとして表示し、employees_ce およびemployees_sn をサブクラスとして表示します。
データベース テーブルの設計: 3 つのテーブル構造を作成します:
id
は主キーです。id
は、employees.id
を参照する外部キーです。id
は、employees.id
を参照する外部キーです。外部キー関係: 外部キー制約の確立:
employees_ce.id
参照 employees.id
employees_sn.id
参照 employees.id
控除テーブル: deductions
テーブルには、employee_id
列を参照する単一の外部キー employees.id
が含まれます。
この階層モデルは参照整合性を保証し、さまざまな従業員タイプのデータを効率的に管理します。 これにより、直接二重外部キー参照を試みることによる複雑さと潜在的な不一致が回避されます。 deductions
テーブル内の単一の外部キーは、関連する従業員レコードへの明確で明確なリンクを提供します。
以上が外部キーは 2 つの別個のテーブルの主キーを同時に参照できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。