MySQL
перфектно поддържа уникални ограничения.
Той обаче не поддържа частични ограничения/индекси, така че ще трябва да маркирате неосновни изображения с NULL
вместо 0
.
ALTER TABLE file ADD CONSTRAINT ux_file_customer_primary
UNIQUE (customerId, isPrimaryImage)
Можете да вмъкнете произволен номер от NULL
стойности в isPrimaryImage
но само една ненулева стойност на клиент.