Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
RadeonX Novato

Registrado: Sexta-Feira, 31 de Julho de 2015 Mensagens: 8
|
Enviada: Qua Jun 10, 2020 10:32 am Assunto: Dúvida básica sobre Chave Estrangeira |
|
|
Bom dia a todos! Estou com uma dúvida bem básica sobre chave estrangeira. Tenho 2 tabelas: Usuário e Filial. Na tabela usuário eu criei um campo chamado FilialID. Na tabela Filial eu tenho um campo chamado FilialID também. Nesse campo eu coloco um código para identificar a Filial.
Quando eu faço login com o usuário eu uso o campo FilialID para fazer todos os filtros do programa, pois ele só enxerga locações e equipamentos da filial que ele se encontra. Como eu tenho feito isso sempre? Eu basicamente criei o mesmo campo nas 2 tabelas e não fiz chave estrangeira. Quando eu estou cadastrando o Usuário, ele seleciona uma filial entre as disponíveis e já pega esse código. Eu deveria usar chave estrangeira em casos assim? Esses campos que as vezes duplico pioram o desempenho ou melhoram por eu ter que acessar apenas uma tabela?
A dúvida é bem básica mesmo. Valeu a todos! |
|
Voltar ao Topo |
|
 |
imex Moderador

Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Qua Jun 10, 2020 11:16 am Assunto: |
|
|
Bom dia,
A criação de um campo para armazenar o ID de outra tabela muitas vezes é necessária, e ela é feita para termos um banco de dados normalizado.
Com esse campo é possível obter todos os dados da tabela relacionada (no seu caso a tabela de filiais) com o uso de junções (Joins). Sem esse campo seria necessário duplicar os outros campos também e isso com o tempo levaria a uma série de outros problemas.
Mas é indicada a criação de uma chave estrangeira nesses casos para garantir a integridade dos dados, evitando por exemplo códigos de filiais não existentes na tabela de usuários ou que usuários fiquem "orfãos" (exclusão de uma filial que tem usuários com o seu código cadastrado). E a existência da chave estrangeira também favorece o desempenho na execução das junções.
Espero que ajude
Editado pela última vez por imex em Dom Out 01, 2023 5:44 pm, num total de 2 vezes |
|
Voltar ao Topo |
|
 |
RadeonX Novato

Registrado: Sexta-Feira, 31 de Julho de 2015 Mensagens: 8
|
Enviada: Qua Jun 10, 2020 11:25 am Assunto: |
|
|
Bom dia!
Muito obrigado! Ajudou sim! Vou fazer os relacionamentos para evitar registros 'órfãos'. |
|
Voltar ao Topo |
|
 |
|