Digamos que tengo una clase que representa ubicaciones. Las ubicaciones "pertenecen" a los clientes. Las ubicaciones se identifican mediante un código de 10 caracteres Unicode. El "código de ubicación" debe ser único entre las ubicaciones para un cliente específico.sqlalchemy único en múltiples columnas
The two below fields in combination should be unique
customer_id = Column(Integer,ForeignKey('customers.customer_id')
location_code = Column(Unicode(10))
Así que si tengo dos clientes, el cliente "123" y el cliente "456". Ambos pueden tener una ubicación llamada "principal", pero ninguno podría tener dos ubicaciones llamadas main.
Puedo manejar esto en la lógica comercial, pero quiero asegurarme de que no hay 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.
que se enfrentan al mismo problema, pero usar UniqueConstraint no me ayudó. Después de probar con Index ('...'), obtengo una restricción única. ¿Hay alguna explicación con este comportamiento? – swdev
@swdev: ¿qué RDBMS usas? – van
Estoy usando PostgreSQL. ¿Hay algún problema con esto? – swdev