Angenommen, ich habe eine Klasse, die Standorte darstellt. Standorte "gehören" zu Kunden. Standorte werden durch einen 10-stelligen Unicode-Code identifiziert. Der "Standortcode" sollte unter den Standorten für einen bestimmten Kunden eindeutig sein.
The two below fields in combination should be unique
customer_id = Column(Integer,ForeignKey('customers.customer_id')
location_code = Column(Unicode(10))
Wenn ich also zwei Kunden habe, Kunde "123" und Kunde "456". Beide können einen Standort namens "main" haben, aber keiner kann zwei Standorte 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 zu funktionieren, wenn sie auf ein bestimmtes Feld angewendet wird, und würde dazu führen, dass die gesamte Tabelle nur einen eindeutigen Code für alle Speicherorte enthält.
quelle
.c.
ist eine Abkürzung zu.columns.
quelle
__table_args__ = (db.UniqueConstraint('customer_id', 'location_code'),)
, vergiss das Komma am Ende nicht.