Fórum MySQL Banco de Dados #571006
15/11/2016
0
Boa tarde!
Sou nova em Banco de Dados e estou com uma dúvida:
Existe a tabela EMPRESA que tem como colunas: id, nome, cnpj e endereco_id.
Estou conseguindo inserir um cadastro de empresa no mesmo endereço das outras empresa, ou seja, o mesmo id. Como está sendo permitido isso se o relacionamento é de 1:1 entre empresa e endereço?? Quando montei a tabela Empresa eu coloquei endereco_id como chave estrangeira.
Alguém poderia me ajudar?
Janaína Bandeira
Curtir tópico
+ 0Post mais votado
16/11/2016
Você tem duas situações ai.
Primeira:
O relacionamento 1:1 e 1:N, que no MER e no Modelo Lógico aparecem como sendo coisas diferentes, são implementados da mesma forma.
Assim é fácil de você virar a chave de um para o outro dentro do banco de dados, já que eles são conceituais.
Inclusive, se for realmente 1:1, seria melhor ter colocado o dado de endereço dentro de empresa.
Segunda:
Seu banco já existe e está populado.
Para você poder fazer valer a regra do 1:1, você tem que seguir a dica do Douglas e alterar / criar essa constraint como sendo UNIQUE.
Uma terceira de brinde:
Não faz muito sentido você ter uma tabela de endereços se não pode reutilizar ela.
Não necessariamente seja o seu caso, mas pense em um espaço de COWORKING onde você tem várias pessoas / empresas em um mesmo endereço que se utilizam do mesmo espaço. Você teria um mesmo endereço para várias empresas.
Espero ter conseguido ser claro.
Grande abraço
Luiz Santos
Gostei + 2
Mais Posts
15/11/2016
Luiz Nogueira
Gostei + 1
16/11/2016
Vagner Carvalho
Não pode haver duplicidade de códigos.
Gostei + 1
16/11/2016
Douglas Noronha
Gostei + 1
16/11/2016
Janaína Bandeira
Gostei + 0
16/11/2016
Janaína Bandeira
Gostei + 0
16/11/2016
Luiz Santos
Pelo fato de id_endereço ser PK em endereço, ele automaticamente já é UNIQUE na tabela endereço.
Logo a CONSTRAINT tem que ser criada no campo id_endereco na tabela empresa.
Lembre-se de limpar os lançamentos em que você repetiu o código do endereço, se não quando você for criar a constraint vai dar erro..
Grande abraço
Gostei + 0
16/11/2016
Luiz Nogueira
Gostei + 1
16/11/2016
Janaína Bandeira
Gostei + 0
16/11/2016
Luiz Santos
Grande abraço
Gostei + 0
16/11/2016
Janaína Bandeira
O bom que as tabelas não estão populadas.
Só mais uma coisa caro Luiz Santos:
Qual o comando que tenho que digitar para inserir a constraint no endereco_id na tabela Empresa??
Gostei + 0
16/11/2016
Luiz Santos
Isso mesmo Jana
:0)
Gostei + 1
16/11/2016
Janaína Bandeira
Aguardo mais só uma duvidazinha básica:
Qual o comando que tenho que digitar para inserir a constraint no endereco_id na tabela Empresa??
Gostei + 0
16/11/2016
Luiz Santos
O bom que as tabelas não estão populadas.
Só mais uma coisa caro Luiz Santos:
Qual o comando que tenho que digitar para inserir a constraint no endereco_id na tabela Empresa??
ALTER TABLE EMPRESA ADD CONSTRAINT uc_idEndereco UNIQUE (id_endereco)
Só alterar o nome da tabela e do campo de acordo com o seu modelo
Grande abraço
Gostei + 1
16/11/2016
Janaína Bandeira
O bom que as tabelas não estão populadas.
Só mais uma coisa caro Luiz Santos:
Qual o comando que tenho que digitar para inserir a constraint no endereco_id na tabela Empresa??
[code]
ALTER TABLE EMPRESA
ADD CONSTRAINT uc_idEndereco UNIQUE (id_endereco)
[Muito obrigada irei tentar.]
Só alterar o nome da tabela e do campo de acordo com o seu modelo
Grande abraço
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)