Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

luan_alves

[Resolvido] Foreing keys

Recommended Posts

Boa tarde a todos,

Estou com a seguinte dúvida, muito se fala em chaves estrangeiras em bancos de dados, e pelo o que eu estudei até agora, não vi muita vantagem neste assunto, e ainda continuo com duvidas.

Algum de voces poderiam me dar um exemplo de como eu faço para inserir dados em tabelas que tem relacionamento, e como faço para consultar as mesmas?

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu acredito que postei no lugar correto, pois os exemplos que eu quero são em PHP mesmo, caso o que eu estiver falando for besteira por favor redirecione o mesmo para o fórum de mysql.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Primeiro seria bom você ler sobre normalização, entendendo as vantagens desta prática fica mais fácil entender o motivo de usar as constraints principalmente primary key e forieng key.

São práticas tão comuns que o seu não uso e que em geral requer a explicação dos motivos.

 

Algum de voces poderiam me dar um exemplo de como eu faço para inserir dados em tabelas que tem relacionamento, e como faço para consultar as mesmas?

 

Tabelas com o sem relacionamento são lidas da mesma forma (praticamente) ou seja via SQL.

Compartilhar este post


Link para o post
Compartilhar em outros sites

As vantagens eu já havia visto, a minha dúvida esta realmente na prática, por exemplo uma grande dúvida que eu tenho.

Tenho 2 tabelas 1 cliente e a outral tel_cliente, a tabela tel_cliente esta relacionada com a tabela cliente pelo o id_cliente, ta ai a minha duvida, como eu faço para inserir os dados vindo do formulario de preenchimento, no meu desenvolvimento atual eu faço da seguinte forma, eu insiro os dados do cliente na tabela especifica depois eu faço um last_insert_id, e com este dado eu faço a inserção do telefone do cliente, a mesma coisa na consulta, só que eu utilizo o inner join para relacionar as tabelas.

A minha dúvida é essa, com a utlização do relacionamento de tabelas como eu poderia evitar esta inserção que pode vir a dar problema?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Imagine uma situação nota fiscal x itens da nota, primeiro se insere a nota depois os itens.

 

Se tentar o contrário o Mysql vai chiar pois uma FK foi violada (não existe a pk respectiva ainda).

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso eu já entendi.

Eu quero saber se realmente muda a forma como eu vou inserir os dados na coluna que for FK, exemplo eu tenho que fazer alguma referencia a outra tabela que tem a PK como referencia?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não, é uma coluna como outra qualquer, apenas o BD faz o check antes de confirmar a operação (insert/update/delete).

O insert é igual, apenas é feita a validação.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.