Załóżmy, że mam klasę reprezentującą lokalizacje. Lokalizacje "należą" do klientów. Lokalizacje są identyfikowane przez 10-znakowy kod Unicode. "Kod lokalizacji" powinien być unikalny wśród lokalizacji dla określonego klienta.Unikalne sqlalchemy w wielu kolumnach
The two below fields in combination should be unique
customer_id = Column(Integer,ForeignKey('customers.customer_id')
location_code = Column(Unicode(10))
Więc jeśli mam dwóch klientów, klient "123" i klient "456". Oba mogą mieć lokalizację o nazwie "main", ale żadna z nich nie może mieć dwóch lokalizacji o nazwie main.
mogę sobie z tym poradzić w logice biznesowej, ale chcę, aby upewnić się, że nie ma sposobu, aby łatwo dodać wymóg w SQLAlchemy. Opcja unique = True wydaje się działać tylko wtedy, gdy zostanie zastosowana do określonego pola, a cała tabela będzie miała unikalny kod dla wszystkich lokalizacji.
I wobec tego samego problemu również, ale użycie UniqueConstraint mi nie pomogło. Po spróbowaniu z indeksem ("...") otrzymuję wyjątkowe ograniczenie. Czy istnieje jakieś wytłumaczenie tego zachowania? – swdev
@ swdev: z którego RDBMS korzystasz? – van
Używam PostgreSQL. Czy jest z tym problem? – swdev