In Postgres haben wir eine Einschränkung definiert, die es im Wesentlichen ermöglicht, die Anzahl der Einträge in einer Tabelle mit einem bestimmten Wert auf eins zu beschränken. Wir haben diese Einschränkung erstellt:Eindeutige Bedingung mit Bedingungen in MYSQL
Erstellen einer eindeutigen Indexliste $ default $ uk auf list_group (visitor_uid) where list_type = 'default';
Dies bedeutet, dass die eindeutige Einschränkung nur angewendet wird, wenn list_type = 'default' ist, sodass es nur eine 'Standardliste' pro Besucher in der Tabelle geben kann.
Es sieht so aus, als ob MySql die zusätzliche wo auf der eindeutigen Einschränkung nicht unterstützt. Gibt es eine andere Möglichkeit, dies im Datenbankschema für MySQL zu unterstützen?
ja - nicht ganz. Das Problem mit dem, was Sie dort haben, ist, dass jede list_group einen eindeutigen list_type für jeden Besucher haben müsste. Das wollen wir nicht. Was wir erreichen wollen, ist, dass jeder Besucher nur eine einzige Listengruppe mit list_type = 'default' hat. Für andere list_types spielt es keine Rolle, ob es Duplikate gibt. – harmanjd
ho, rechts. Dann habe ich keine Möglichkeit, dies in MySQL zu tun, da CHECK Constaint noch nicht von Speicher-Engines unterstützt wird: http://forums.mysql.com/read.php?136,152474,240479#msg-240479. Aber, wie Codymanix sagte, würde ich eher die Datenstruktur ändern, wenn die Durchsetzung dieser Regel in der Datenbank von wesentlicher Bedeutung ist. –