Eu tenho as seguintes colunas (e mais não relacionadas) em minha tabela de banco de dados MSSQL Id
: ImageUrl
e ImageId
. A combinação de ImageUrl
e ImageId
pode ocorrer várias vezes. ImageUrl
pertence ImageId
e vice-versa.
Os exemplos a seguir usam valores fictícios para maior clareza, para a tabela de banco de dados real ImageId: int e ImageUrl: nvarchar são usados como tipos de dados.
ImageId
= a
que pertence a ImageUrl
= a.com
pode ocorrer várias vezes, mas ImageId
= a
não pode ser usado para outros ImageUrl
.
ImageUrl
= a.com
pode ocorrer múltiplas vezes com o mesmo ImageId
, mas ImageUrl
= a.com
não pode ocorrer com múltiplos ImageId
como a
e b
.
Os seguintes dados devem ser possíveis:
Eu ia | ID da imagem | Imagem URL |
---|---|---|
1 | a | a.com |
2 | a | a.com |
3 | b | b.com |
Os dois exemplos a seguir não são permitidos:
Eu ia | ID da imagem | Imagem URL |
---|---|---|
1 | a | a.com |
2 | b | a.com |
Eu ia | ID da imagem | Imagem URL |
---|---|---|
1 | a | a.com |
2 | a | b.com |
Não sei e não encontrei soluções MSSQL para isso.
Pergunta: Existe uma solução para impor isso no MSSQL? E existe uma palavra/termo para esta restrição/aplicação?
Editar: isto é para meu banco de dados existente com muitos dados, onde esta tabela é a tabela "primária". Prefiro não alterar a estrutura desta tabela alterando ou removendo colunas. Adicionar colunas está bem. É por isso que a resposta de @LeppyR64 não seria uma solução para o meu caso de uso.