Sagen wir, dass ich eine Klasse habe, die Standorte darstellt. Standorte gehören zu den Kunden. Standorte werden durch einen Unicode-Code mit 10 Zeichen identifiziert. Der "Standortcode" sollte unter den Standorten für einen bestimmten Kunden eindeutig sein.sqlalchemy einzigartig über mehrere Spalten
The two below fields in combination should be unique
customer_id = Column(Integer,ForeignKey('customers.customer_id')
location_code = Column(Unicode(10))
Also, wenn ich zwei Kunden habe, Kunde "123" und Kunde "456". Beide können einen Ort namens "main" haben, aber keiner könnte zwei Orte namens main haben.
Ich kann dies in der Geschäftslogik behandeln, aber ich möchte sicherstellen, dass es keine Möglichkeit gibt, die Anforderung in sqlalchemy einfach hinzuzufügen. Die Option "unique = True" scheint nur dann zu funktionieren, wenn sie auf ein bestimmtes Feld angewendet wird. Dadurch würde die gesamte Tabelle nur einen eindeutigen Code für alle Standorte enthalten.
ich auch vor dem gleichen Problem, aber mit UniqueConstraint hat mir nicht geholfen. Nachdem ich mit Index ('...') versucht habe, bekomme ich eine eindeutige Einschränkung. Gibt es eine Erklärung für dieses Verhalten? – swdev
@swdev: Welches RDBMS verwenden Sie? – van
Ich benutze PostgreSQL. Gibt es ein Problem damit? – swdev