Tento problém nemůžete vyřešit svým aktuálním návrhem, aniž byste vložili nějakou logiku na úrovni spouštěče nebo aplikace. FOREIGN KEY
s nemůže odkazovat na více než jednu tabulku (chápu, že váš návrh používá jednu tabulku na skupinu produktů, pokud se mýlím, dejte mi prosím vědět). Navíc nemohou obsahovat žádnou podmíněnou logiku, takže i když máte jednu product_groups
tabulku nemůžete vytvořit FOREIGN KEY
to umožňuje pouze záznamy G1 a G2 z této tabulky.
Abyste toho dosáhli se standardními omezeními relační integrity, budete potřebovat další tabulku nazvanou něco jako approvable_products
který by obsahoval product_ids
z těch produktů, které jsou ve skupině 1 nebo 2.