ホームページ >データベース >mysql チュートリアル >外部キーは異なるテーブル内の複数の主キーを参照できますか? 最良の代替キーは何ですか?
テーブル間の外部キー参照
この記事では、1 つのテーブルに外部キーを作成して、他の複数のテーブルの主キーを参照する可能性を検討します。具体的には、質問者が提示したシナリオを中心に展開します。
シーン解釈
質問者には employees_ce
と employees_sn
という 2 つのテーブルがあり、それぞれに独自の主キー列があります。また、deductions
と呼ばれる 3 番目のテーブルもあり、employees_ce
と employees_sn
の主キーを参照するために外部キーが必要です。提供されている例は、この状況をさらに説明しています:
<code>employees_ce -------------- empid name khce1 prince employees_sn ---------------- empid name khsn1 princess</code>
<code>deductions -------------- id name khce1 gold khsn1 silver</code>
解決策
質問者の目標は技術的には達成可能ですが、データベース設計におけるベストプラクティスではありません。推奨される方法は、2 つのテーブルをリンクする中間テーブルを定義することです。例:
<code>employees ---------------- empid name employees_types --------------- empid type khce1 ce khsn1 sn</code>
この設定では、deductions
テーブルに employees
テーブルの empid
列を参照する外部キーを含めることができるため、3 つのテーブル間に単純な関係が作成されます。
<code>deductions -------------- id name khce1 gold khsn1 silver</code>
中間テーブル方式のメリット
中間テーブル方式には次の利点があります:
deductions
テーブルを変更せずに他の従業員タイプを追加できるため、柔軟性と拡張性が実現します。 以上が外部キーは異なるテーブル内の複数の主キーを参照できますか? 最良の代替キーは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。