Digamos que tengo una clase que representa ubicaciones. Las ubicaciones "pertenecen" a los clientes. Las ubicaciones se identifican mediante un código Unicode de 10 caracteres. El "código de ubicación" debe ser único entre las ubicaciones de un cliente específico.
The two below fields in combination should be unique
customer_id = Column(Integer,ForeignKey('customers.customer_id')
location_code = Column(Unicode(10))
Entonces, si tengo dos clientes, el cliente "123" y el cliente "456". Ambos pueden tener una ubicación llamada "main" pero ninguno podría tener dos ubicaciones llamadas main.
Puedo manejar esto en la lógica de negocios, pero quiero asegurarme de que no haya forma de agregar fácilmente el requisito en sqlalchemy. La opción unique = True parece funcionar solo cuando se aplica a un campo específico y causaría que toda la tabla solo tenga un código único para todas las ubicaciones.
fuente
.c.
es un atajo para.columns.
fuente
__table_args__ = (db.UniqueConstraint('customer_id', 'location_code'),)
, no olvides la coma al final.