Estou projetando um banco de dados para E-comercial. Portanto, o Cliente tem muitos endereços e também 1 endereço também possui muitos clientes, então eu tenho outra tabela CustomerAddress (relação muitos para muitos). Aqui detalhe:
Cliente:
- ID do cliente (PK)
- Nome
- Data de nascimento
EndereçoNota:
- EndereçoNotaID (PK)
- AddressID (FK) (tem relacionamento com a tabela de cidades, então não vou mencionar isso aqui)
Endereço do cliente :
ID do cliente (PK)
EndereçoNotaID (PK)
PhoneNumber (O número de telefone aqui indica quem será chamado no momento da entrega naquele endereço)
Meu problema é que quero que 1 cliente tenha vários endereços, mas tenha 1 único endereço padrão. Então estou pensando em adicionar mais uma coluna IsDefault (bool) na tabela CustomerAddress. Mais tarde, me sinto errado porque ainda é permitido que o cliente tenha dois endereços diferentes e ambos definam o endereço padrão. Acredito que a validação em nível de aplicativo pode lidar com isso, mas quero restrições de banco de dados. Existe alguma maneira de projetar essas restrições. Sou apenas iniciante, então agradeço qualquer instrução.
Uma maneira de implementar tal restrição é usando um índice exclusivo filtrado:
Violino