Ajuda com UK

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.