ホームページ >データベース >mysql チュートリアル >外部キー制約は複数のテーブルを参照できますか?

外部キー制約は複数のテーブルを参照できますか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-24 05:42:02717ブラウズ

Can Foreign Key Constraints Reference Multiple Tables?

多態性外部キー制約: 複数のテーブルの参照

データベース設計の領域では、外部キー制約はテーブル間の関係を確立し、整合性を確保します。テーブル間でレコードを接続することでデータを収集します。従来、外部キーは単一の特定のテーブルを指しました。しかし、次のような疑問が生じます: 複数のテーブルの 1 つを参照する外部キーを作成することは可能ですか?

この概念を理解するには、テーブルとテーブルのセットの間の多態性の関係を考慮してください。このようなシナリオでは、テーブルをテーブルのグループのいずれか 1 つに関連付けることができます。たとえば、次の 3 つのテーブルを考えます:

  • images: person_id, person_type
  • 部下: id,col1,col2...col9
  • products: id,colA,colB...colZ

この例では、images テーブルの person_type 列に「部下」が含まれている場合、 person_id は、subjections.id を参照する外部キーである必要があります。同様に、person_type が「products」の場合、person_id は products.id を参照する必要があります。

答え: 単一の外部キーでは不可能

慎重に検討すると、次のようになります。複数のテーブルを参照する単一の外部キー制約を設定することはできないことを明確にしてください。外部キー制約は常に 1 つの親テーブルのみをターゲットとします。したがって、フィールドが何らかの条件に基づいて複数のテーブルを参照する必要がある場合は、代替ソリューションを検討する必要があります。

多態性に関する追加リソース

多態性の関連付けをより深く理解するには、次のリソースを検討することを検討してください:

  • プレゼンテーション: SQL の実践的なオブジェクト指向モデル
  • 書籍: SQL アンチパターン、第 1 巻: データベース プログラミングの落とし穴の回避

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。