U kunt dit probleem niet oplossen met uw huidige ontwerp zonder enige logica in te voeren op trigger- of applicatieniveau. FOREIGN KEY
s kan niet naar meer dan één tafel verwijzen (ik begrijp dat uw ontwerp één tafel per productgroep gebruikt, als ik het mis heb, laat het me dan weten). Bovendien kunnen ze geen voorwaardelijke logica bevatten, dus zelfs als je een enkele product_groups
hebt tabel kunt u geen FOREIGN KEY
. maken dat alleen de G1- en G2-records van die tabel toestaat.
Om dit te bereiken met standaard relationele integriteitsbeperkingen, hebt u een extra tabel nodig met de naam approvable_products
die de product_ids
. zou bevatten van de producten die in groep één of groep twee zitten.