Digamos que estou projetando um banco de dados para um cenário em que exista um relacionamento de um para zero ou um (1-0..1). Por exemplo:
- Há um conjunto de usuários e alguns usuários também podem ser clientes .
Assim, criei as duas tabelas correspondentes users
e customers
, mas ...
… Qual é a melhor maneira de representar e implementar essa situação em uma determinada plataforma SQL? Eu considerei duas soluções possíveis:
Na
users
tabela, adicione acustomer
coluna que pode ser uma referência para FOREIGN KEYcustomers
ou umaNULL
marca.Na
customers
tabela, inclua umauser
coluna (definida com umaUNIQUE
restrição) que aponta para ausers
tabela.
Eu já fiz uma pergunta semelhante em alguns fóruns, mas a resposta foi basicamente "o que você precisar", "o que achar conveniente". Eu não gosto desse tipo de resposta. Em vez disso, quero uma séria teoria da DB, uma resposta bem fundamentada. Onde posso ler sobre relacionamentos 1-0..1?