Atualmente estou modelando um esquema de banco de dados. Nele, os endereços são utilizados várias vezes, que seguem uma estrutura fixa. Em nossos sistemas anteriores, a relação de endereço era modelada de tal forma que o endereço continha chaves estrangeiras, por exemplo, as de um usuário.
Raciocínio: Desta forma, um endereço só pode ser anexado a um dos pais. Do meu ponto de vista, no entanto, isso é um caos absoluto, porque às vezes existem até oito chaves estrangeiras na relação de endereço, devendo-se tomar cuidado para que apenas uma seja preenchida.
Não faria muito mais sentido colocar a chave no pai, de modo que, por meio de uma restrição diferente de zero, se pudesse garantir que cada pai tenha um endereço e a relação de endereço seja limpa? O pai também raramente/nunca é navegado a partir do lado do endereço.
Ou estou violando alguma convenção fazendo isso? Nesse caso, a limpeza não pesa mais do que uma "convenção"? Se desejado, também pode-se modelar os requisitos anteriores usando gatilhos?
Abordagem atual: Restrição para garantir que apenas um FK seja definido no endereço.