Diciamo che ho una classe che rappresenta le posizioni. Le posizioni "appartengono" ai clienti. Le posizioni sono identificate da un codice unicode di 10 caratteri. Il "codice località" dovrebbe essere unico tra le località per un cliente specifico.sqlalchemy unico su più colonne
The two below fields in combination should be unique
customer_id = Column(Integer,ForeignKey('customers.customer_id')
location_code = Column(Unicode(10))
Quindi, se ho due clienti, cliente "123" e cliente "456". Entrambi possono avere una posizione chiamata "main" ma nessuno dei due potrebbe avere due posizioni chiamate main.
Sono in grado di gestirlo nella logica di business ma voglio essere sicuro che non ci sia modo di aggiungere facilmente il requisito in sqlalchemy. L'opzione unique = True sembra funzionare solo se applicata a un campo specifico e farebbe in modo che l'intera tabella abbia solo un codice univoco per tutte le posizioni.
io faccia lo stesso problema anche, ma l'utilizzo di UniqueConstraint non mi ha aiutato. Dopo aver provato con Index ('...'), ottengo un vincolo univoco. C'è qualche spiegazione con questo comportamento? – swdev
@swdev: quale RDBMS usi? – van
Sto usando PostgreSQL. C'è un problema con questo? – swdev