Mysql
 sql >> Base de données >  >> RDS >> Mysql

scénario de conception de base de données relationnelle

Vous ne pouvez pas résoudre ce problème avec votre conception actuelle sans interposer une logique au niveau du déclencheur ou de l'application. FOREIGN KEY s ne peut pas faire référence à plus d'une table (je comprends que votre conception utilise une table par groupe de produits, si je me trompe, veuillez me le faire savoir). De plus, ils ne peuvent contenir aucune logique conditionnelle, donc même si vous avez un seul product_groups table, vous ne pouvez pas créer une FOREIGN KEY qui n'autorise que les enregistrements G1 et G2 de cette table.

Afin d'accomplir cela avec des contraintes d'intégrité relationnelle standard, vous auriez besoin d'une table supplémentaire appelée quelque chose comme approvable_products qui contiendrait les product_ids de ces produits qui sont dans le groupe un ou le groupe deux.