Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Entwurfsszenario für relationale Datenbanken

Sie können dieses Problem mit Ihrem aktuellen Design nicht lösen, ohne eine Logik auf Trigger- oder Anwendungsebene einzufügen. FOREIGN KEY s können nicht auf mehr als eine Tabelle verweisen (ich verstehe Ihr Design, eine Tabelle pro Produktgruppe zu verwenden, wenn ich falsch liege, lassen Sie es mich bitte wissen). Außerdem dürfen sie keine bedingte Logik enthalten, also auch nicht, wenn Sie eine einzelne product_groups haben Tabelle können Sie keinen FOREIGN KEY erstellen die nur die G1- und G2-Datensätze aus dieser Tabelle zulässt.

Um dies mit standardmäßigen relationalen Integritätsbedingungen zu erreichen, benötigen Sie eine zusätzliche Tabelle mit dem Namen approvable_products die die product_ids enthalten würde der Produkte, die in Gruppe eins oder Gruppe zwei sind.