Bom dia a todos!
Uso postgres com hibernate.
Estou com uma dúvida.
Tenho uma uk composta campo1, campo2, campo3
campo1, campo2, campo3 - não podem se repetir
campo1, campo2 - não podem se repetir
mas
campo2, campo3 - podem se repetir
E campo2 e campo3 podem ser nulos assim quando tenho
campo1 campo2 campo3
1 1 null
quando chega novamente
campo1 campo2 campo3
1 1 nulll
o banco aceita, alguém ja fez algo do tipo, uma uk composta por tres campos onde um pode ser null.
Não sei se expliquei bem o meu problema.
Obrigado, agradeço qualquer ajuda.
Conhece as formas normais de bancos de dados? Uma delas diz que, assim como uma chave primária deve ser a única forma de encontrar as demais colunas de forma específica, a combinação de colunas deve permitir a localização da chave primária, também de forma específica.
Por exemplo, quando tempos as colunas
--Funcionario
id_funcionario
primeiro_nome
ultimo_nome
matricula
A coluna id_funcionario permite encontrar primeiro_nome, ultimo_nome e matricula. Da mesma forma que a combinação matricula, primeiro_nome e ultimo_nome permitem encontrar a coluna id_funcionario.
Por que estou dizendo isso?
Ora, simples, você não precisa da UK (nunca vi este termo, enfim…) composta.