• 0
Sign in to follow this  
Silvio Sampaio

Chave estrangeira - bd_controle_de_equipamentos

Question

Amigos,

Ainda preciso de ajuda.

Mas agora com um pouco mais de domínio da ferramenta e conhecendo o básico do Mysql

Já consigo realizar meus select's, inserção de dados nas tabelas, alerações de caracteristicas etc

Entretanto minha grande dificuldade agora é com CHAVE ESTRANGEIRA, pois é, pode parecer repetitivo mas sem um exemplo prático eu não conseguirei entender

Pois já vi vários videos no youtube, li orientações e ainda não consegui assimilar a lógica desta utilização.

Segue meu exemplo prático (confesso que bastante incomum)

tb_emprestimo

id Colaborador Patrimônio Descrição Emprestimo Setor

1 Jovem Aprendiz 68143 Reunião no auditório 29/5/2012 15:20:28 Administração

2 Adriana Silva Santos 80404 Eventos externos 29/5/2012 16:00:46 Secretaria Escolar

3 Clovis Campagnolo 68142 Aulas N I 1/6/2012 10:02:55 Educação Integral

tb_entrega

id Colaborador Patrimônio Devolução Devolvido

1 Jovem Aprendiz 68142 29/5/2012 16:19:10 Não

2 Adriana Silva Santos 80404 30/5/2012 10:43:03 Não

3 Clovis Campagnolo 68142 1/6/2012 11:00:53 Não

Como todos são bem sábios aqui creio ficou claro o interesse

A idéia é que toda vez que alterar algum "Colaborador" ou "Patrimônio" da tabela EMPRESTIMO essa atualização ocorra nos mesmos campos da tabela ENTREGA.

Para isso no PHPMYADMIN na tabela ENTREGA usei a seguinte opção:

FOREIGN KEY INNODB tb_emprestimo.id on delete on cascate

No fim das contas eu relacionei os campos IDs das duas tabelas, mas no ACCESS isso não tem funcionado na prática

Quem me dá uma dica?

RS: http://facebook.com/sampaiosp

MSN: [email protected]

Share this post


Link to post
Share on other sites

2 answers to this question

Recommended Posts

  • 0

Silvio,

Uma das vantagens do relacionamento entre tabelas é a não repetição dos dados. Nesse seu caso, não precisaria ter os dados de colaborador e patrimonio na tabela tb_entrega. Basta apenas um campo de nome 'id_emprestimo' (só exemplo de nome) para relacionar com a 1a tabela tb_emprestimo.

Dessa forma, a tabela tb_entrega ficaria assim:

id

id_emprestimo tipo int

devolucao

devolvido

no id_emprestimo você poe o codigo do registro da tabela emprestimo, para relacionar as tabelas...

exemplo do seu caso:

tb_entrega

id Colaborador Patrimônio Devolução Devolvido

1 Jovem Aprendiz 68142 29/5/2012 16:19:10 Não

2 Adriana Silva Santos 80404 30/5/2012 10:43:03 Não

3 Clovis Campagnolo 68142 1/6/2012 11:00:53 Não

ficaria assim:

tb_entrega

id id_emprestimo Devolução Devolvido

1 1 29/5/2012 16:19:10 Não

2 2 30/5/2012 10:43:03 Não

3 3 1/6/2012 11:00:53 Não

para fazer uma consulta na tabela tb_entrega você faz assim por exemplo:

select distinct t.colaborador , t.patrimonio, t.descricao , e.devolucao, e.devolvido from tb_emprestimo t, tb_entrega e where t.id=e.id_emprestimo order by t.colaborador

a parte "where t.id=e.id_emprestimo" faz a relação entre os id's das duas tabelas.

Dessa forma você muda os dados da tabela tb_emprestimo e não precisa mexer na tabela tb_entrega.

Share this post


Link to post
Share on other sites
  • 0

Sandro,

Realmente você tem toda razão, não havia pensado dessa forma

Nâo tenho porque ter o dado repetido já que o que eu realmente quero é o vinculo da informação

Agora o único detalhe é que essas informações são tratadas no Access e por pessoas diferentes

Por isso eu repeti os campos achando que ajudaria

Vou fazer as mudanças e depois retorno aqui pra dizer como ficou

Muito obrigado pelas orientações

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this