Fórum Duplicidade de registros em Banco de Dados #562911

25/09/2016

0

Boa noite pessoal!
A iniciante aqui tem uma dúvida em relação à banco de dados:
Como faço para colocar a mesma restrição UNIQUE em todo o banco ao invés de somente na tabela?
Exemplo: Existe uma ide_endereco que é uma chave estrangeira na tabela EMPRESA e OBRA. Só que no meu banco está aceitando eu colocar o id_endereco (1) tanto na EMPRESA quanto na OBRA. E são endereços diferentes. Como faço?
Existe essa possibilidade de realizar o bloqueio de valores duplicados no banco não somente na tabela.
Ah, o relacionamento é 1:1. Obra tem endereço (id) e Empresa também.
No aguardo, obrigada!!
Janaína Bandeira

Janaína Bandeira

Responder

Post mais votado

25/09/2016

Janaina.
Mas são endereços distintos
Mesmo que o seu endereço seja chave, como estamos falando de duas tabelas diferentes, empresa e obra, eles podem ter o mesmo (id) endereço sim.
Agora, porque você está usando endereço como chave?

Grande abs

Luiz Santos

Luiz Santos
Responder

Gostei + 2

Mais Posts

25/09/2016

Janaína Bandeira

Oi Luiz,
Estou usando o endereço com chave estrangeira nas tabelas: EMPRESA e OBRA, porque fiz uma tabela endereço que dentro dela terá vários endereços. Eu tinha colocado o endereço dentro da tabela EMPRESA e OBRA mas a professora falou que era melhor fazer uma tabela ENDEREÇO que receberá vários id´s diferentes, se relacionando 1:1. Será que foi a melhor prática? Ficou confuso?
Responder

Gostei + 0

25/09/2016

Luiz Santos

Pense assim.
Endereço é um atributo tanto de EMPRESA quanto de OBRA.
Nada impede de ser uma chave estrangeira.
E por ser uma chave estrangeira, ela pode existir duplicada nas tabelas que recebem essa chave.
Mas dentro da tabela endereço, cada endereço é único.
Consegui ser claro?

Você está modelando o que exatamente, pra eu entender.
Responder

Gostei + 2

26/09/2016

Janaína Bandeira

Obrigada! Entendi agora.
Estou modelando um banco de um sistema que controla vencimento de certidões.
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar