Non è possibile risolvere questo problema con il progetto attuale senza interporre una logica a livello di trigger o di applicazione. FOREIGN KEY
s non può fare riferimento a più di una tabella (capisco che il tuo progetto utilizzi una tabella per gruppo di prodotti, se sbaglio fammi sapere). Inoltre non possono contenere alcuna logica condizionale, quindi anche se hai un singolo product_groups
tabella non è possibile creare una FOREIGN KEY
che consente solo i record G1 e G2 da quella tabella.
Per ottenere ciò con i vincoli di integrità relazionale standard, avresti bisogno di una tabella aggiuntiva chiamata qualcosa come approvable_products
che conterrebbe product_ids
di quei prodotti che sono nel gruppo uno o nel gruppo due.