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