Mysql
 sql >> Database >  >> RDS >> Mysql

scenario di progettazione di database relazionali

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.