Ir para conteúdo
Fórum Script Brasil
  • 0

Pergunta boba de chave estrangeira.


ucastro

Pergunta

Não entendo uma coisa de chave estangeira.

Suponhamos que temos duas tabelas:

Tabela Pai Clientes

cli_codigo Chave primária

cli_nome

depto_codigo Chave estrangeira tipo int

Tabela filho Departamento

depto_codigo Chave primária

depto_nome

Imagine se eu tiver 400 departamentos e que já estão todos cadastrados na tabela filho.

Agora vou começar a inserir os Clientes na tabela Pai , mas surge um problema toda vez que eu chego no campo depto_codigo como é que eu vou saber qual é o número do departamento. Vou ter que ficar toda vez consultando a tabela filho Departamento para saber o número?

Não tem como fazer a chave estrangeira por nome de departamento não?

Imagina então se eu fizer outros relacionamentos com a tabela cliente como tabelas filhos telefone, banco.... Vou ter que ficar consultando tabela por tabela para saber os números das pastas filhos para inserir na chave estrangeira na pasta pai.

Editado por ucastro
Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0
Imagine se eu tiver 400 departamentos e que já estão todos cadastrados na tabela filho.

Agora vou começar a inserir os Clientes na tabela Pai , mas surge um problema toda vez que eu chego no campo depto_codigo como é que eu vou saber qual é o número do departamento. Vou ter que ficar toda vez consultando a tabela filho Departamento para saber o número?

Sim. terá que consultar a tabela filha.

Esta tabela filha, na verdade é a tabela pai. Pois é o lado um do relacionamento um para muitos entre departamento e clientes.

Um departamento pode ter muitos clientes e muitos clientes pertencem a um departamento (conforme você criou)

Não tem como fazer a chave estrangeira por nome de departamento não?
Não. pois você ferirá o principio de normalização de tabelas.

Imagine se o nome do departamento for trocado. Vai ter que trocar em N clientes?

Imagina então se eu fizer outros relacionamentos com a tabela cliente como tabelas filhos telefone, banco.... Vou ter que ficar consultando tabela por tabela para saber os números das pastas filhos para inserir na chave estrangeira na pasta pai.
Sim. É assim que as pessoas que trabalham direito fazem.

O princípio é o mesmo do descrito acima.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...