トリガーレベルまたはアプリケーションレベルのいずれかでロジックを挿入しないと、現在の設計でこの問題を解決することはできません。 FOREIGN KEY
■複数のテーブルを参照することはできません(製品グループごとに1つのテーブルを使用するように設計されていることを理解しています。間違っている場合は、お知らせください)。さらに、条件付きロジックを含めることはできないため、product_groups
が1つしかない場合でも FOREIGN KEY
を作成できないテーブル そのテーブルからのG1およびG2レコードのみを許可します。
標準のリレーショナル整合性制約を使用してこれを実現するには、approvable_products
のような追加のテーブルが必要になります。 これにはproduct_ids
が含まれます グループ1またはグループ2に含まれる製品のうち。