多態性外部キー制約: 複数のテーブルの参照
データベース設計の領域では、外部キー制約はテーブル間の関係を確立し、整合性を確保します。テーブル間でレコードを接続することでデータを収集します。従来、外部キーは単一の特定のテーブルを指しました。しかし、次のような疑問が生じます: 複数のテーブルの 1 つを参照する外部キーを作成することは可能ですか?
この概念を理解するには、テーブルとテーブルのセットの間の多態性の関係を考慮してください。このようなシナリオでは、テーブルをテーブルのグループのいずれか 1 つに関連付けることができます。たとえば、次の 3 つのテーブルを考えます:
この例では、images テーブルの person_type 列に「部下」が含まれている場合、 person_id は、subjections.id を参照する外部キーである必要があります。同様に、person_type が「products」の場合、person_id は products.id を参照する必要があります。
答え: 単一の外部キーでは不可能
慎重に検討すると、次のようになります。複数のテーブルを参照する単一の外部キー制約を設定することはできないことを明確にしてください。外部キー制約は常に 1 つの親テーブルのみをターゲットとします。したがって、フィールドが何らかの条件に基づいて複数のテーブルを参照する必要がある場合は、代替ソリューションを検討する必要があります。
多態性に関する追加リソース
多態性の関連付けをより深く理解するには、次のリソースを検討することを検討してください:
以上が外部キー制約は複数のテーブルを参照できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。