Chaves Estrangeiras virem de 1 Tabela
Olá Caros Colegas !
Creio que a dúvida seja simples, porém não estou conseguindo resolve-la. A questão é a seguinte, tenho 3 tabelas:
> CLIENTE
> PEDIDO
> ENDEREÇO
A tabela PEDIDO vai herdar alguns Atributos (Colunas) da tabela Cliente. Porém, ao fazer o constraint dessas tais FOREIGN, ele me apresenta um erro. Abaixo vou tentar exemplificar :
PS: Acima eu fiz um exemplo genérico do que eu lembrei, não estou usando o PC, onde eu fiz a montagem do script, mas a parte em que eu digamos que travei por causa das chaves estrangeiras foi essa ai. Estou utilizando o WORKBENCH 6.
Alguém pode me auxiliar nessa questão ?
Creio que a dúvida seja simples, porém não estou conseguindo resolve-la. A questão é a seguinte, tenho 3 tabelas:
> CLIENTE
> PEDIDO
> ENDEREÇO
A tabela PEDIDO vai herdar alguns Atributos (Colunas) da tabela Cliente. Porém, ao fazer o constraint dessas tais FOREIGN, ele me apresenta um erro. Abaixo vou tentar exemplificar :
create table CLIENTE ( IdCliente int not null, NomeCli varchar(100), Telefone varchar (15), CPF numeric (12), Endereco varchar (100), Cidade varchar (25), Email varchar (40), CONSTRAINT PK_CLIENTE PRIMARY KEY (IdCliente) ); create table PEDIDO ( IdPedido int not null, NomeCli varchar (100), Telefone varchar (15), CPF numeric (12), Endereco varchar (100), Cidade varchar (25), CONSTRAINT PK_PEDIDO PRIMARY KEY (IdPedido) CONSTRAINT FK_NomeCli FOREIGN KEY (NomeCli) REFERENCES CLIENTES(NomeCli), CONSTRAINT FK_Telefone FOREIGN KEY (Telefone) REFERENCES CLIENTES(Telefone), CONSTRAINT FK_CPF FOREIGN KEY (CPF) REFERENCES CLIENTES(CPF), CONSTRAINT FK_Endereco FOREIGN KEY (Endereco ) REFERENCES CLIENTES(Endereco) );
PS: Acima eu fiz um exemplo genérico do que eu lembrei, não estou usando o PC, onde eu fiz a montagem do script, mas a parte em que eu digamos que travei por causa das chaves estrangeiras foi essa ai. Estou utilizando o WORKBENCH 6.
Alguém pode me auxiliar nessa questão ?
André Moutinho
Curtidas 0
Melhor post
Jones Granatyr
19/08/2016
Não precisar fazer uma chave estrangeira para todos os campos, na verdade você somente precisaria de um IDCLIENTE do tipo inteiro na tabela PEDIDO e uma chave estrangeira do pedido para o cliente (se tiver o exemplo completo fica mais fácil para ajudar)
GOSTEI 1
Mais Respostas
André Moutinho
19/08/2016
Não precisar fazer uma chave estrangeira para todos os campos, na verdade você somente precisaria de um IDCLIENTE do tipo inteiro na tabela PEDIDO e uma chave estrangeira do pedido para o cliente (se tiver o exemplo completo fica mais fácil para ajudar)
A parte com a qual estou querendo manipular é apenas essa. Só existem essas 3 tabelas, e a Tabela Endereço está correta, não tem o que mexer. Eu sei que de forma normal não necessitaria disso, porém a nível de conhecimento da minha parte gostaria de saber como eu poderia fazer isso.
E penso que não a uma maneira, a não ser que eu fizesse a utilização de uma terceira tabela para isso, no caso essa terceira tabela seria o OBJETO SOLUÇÃO.
GOSTEI 0
Jones Granatyr
19/08/2016
Coloque aqui a estrutura da tabela de endereço...
GOSTEI 0
André Moutinho
19/08/2016
Coloque aqui a estrutura da tabela de endereço...
create table Endereco
(
IdCliente int not null, {Então aqui seria a chave estrangeira da tabela Cliente, não sei se estaria correto}
Endereco varchar (1000),
Complemento numeric(5),
Bairro varchar(555),
Cidade varchar(100),
Estado varchar(2)
);
Então, na tabela Pedido, eu não teria que ter a coluna Endereco, da tabela Endereco vinda como Foreign Key ?
GOSTEI 0