Fórum Chaves Estrangeiras virem de 1 Tabela #560409

19/08/2016

0

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 :

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

André Moutinho

Responder

Post mais votado

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)

Jones Granatyr

Jones Granatyr
Responder

Gostei + 1

Mais Posts

20/08/2016

André Moutinho

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.
Responder

Gostei + 0

22/08/2016

Jones Granatyr

Coloque aqui a estrutura da tabela de endereço...
Responder

Gostei + 0

23/08/2016

André Moutinho

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 ?
Responder

Gostei + 0

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

Aceitar