sqlalchemy уникален для нескольких столбцов

Скажем, у меня есть класс, который представляет местоположения. Места "принадлежат" клиентам. Местоположения идентифицируются 10-символьным кодом Unicode. «Код местоположения» должен быть уникальным среди местоположений для конкретного клиента.

The two below fields in combination should be unique
customer_id = Column(Integer,ForeignKey('customers.customer_id')
location_code = Column(Unicode(10))

Так что, если у меня есть два клиента, клиент "123" и клиент "456". Они оба могут иметь местоположение, называемое «основным», но ни одно из них не может иметь двух мест, называемых основным.

Я могу справиться с этим в бизнес-логике, но хочу убедиться, что нет никакого способа легко добавить требование в sqlalchemy. Опция unique = True, кажется, работает только применительно к конкретному полю, и это приведет к тому, что вся таблица будет иметь уникальный код только для всех местоположений.

148
задан Jonathon Reinhart 2 November 2015 в 03:36
поделиться