none
Normalização de tabelas RRS feed

  • Pergunta

  • Boa tarde pessoal,

    Eu estou desenvolvendo um sistema e gostaria de criar uma tabela única para armazenar telefones, a minha dúvida é a seguinte:

    Seria melhor criar uma única tabela mesmo e ir adicionando FK's na tabela de telefone, por exemplo, FK de Pessoa, FK de Empresa, FK de Cliente?

    Ou seria melhor criar uma tabela de telefone para cada entidade do sistema e evitar uma única tabela com várias FK's?

    Obrigado pela ajuda, abraço.

    domingo, 18 de novembro de 2012 14:02

Respostas

  • Resolvi o meu problema da seguinte forma:

    Criei uma tabela Pessoa, esta tabela será base para todos os tipos de pessoas no sistema, esta tabela possui um Id que eu utilizo na tabela Telefone como chave estrangeira. Assim consigo guardar todos os telefones em um única tabela, porque as tabelas Clientes, Fornecedores, Funcionários serão entidades fracas da tabela Pessoa, com isso centralizo todos os Id's na tabela Pessoa e depois relaciono com Telefone.

    Obrigado pela atenção.

    segunda-feira, 19 de novembro de 2012 22:20

Todas as Respostas

  • Humberto isso vai depender muito da sua intenção, na minha opnião seria melhor você colocar na tabela de cadastro um identificador como codigo_telefone e em uma tabela de telefones ter esse identificador para mais de um telefone.

    Se esta sugestão for útil, por favor, classifique-a como útil. Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

    domingo, 18 de novembro de 2012 22:24
  • Olá Marcos,

    Esta sua dica seria uma alternativa.

    Eu estive pensando em criar campos do tipo UNIQUEIDENTIFIER nestas tabelas que irão possuir telefones, aí na tabela Telefone eu criaria uma coluna para armazenar este ID único, assim daria para saber quem é o dono do telefone, pois, desta forma não existiria dois ID's igual na base. Agora o problema esta sendo a integridade referencial, porque este campo na tabela de Telefone não seria FK de nenhuma tabela.

    Será que seria viável assim?

    segunda-feira, 19 de novembro de 2012 00:31
  • Acredito que dessa forma você não encontrará problemas, desde que garanta que todo telefone da tabela tenha um id de referência na tabela que irá conter os outros dados.

    Se esta sugestão for útil, por favor, classifique-a como útil. Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

    segunda-feira, 19 de novembro de 2012 01:15
  • Resolvi o meu problema da seguinte forma:

    Criei uma tabela Pessoa, esta tabela será base para todos os tipos de pessoas no sistema, esta tabela possui um Id que eu utilizo na tabela Telefone como chave estrangeira. Assim consigo guardar todos os telefones em um única tabela, porque as tabelas Clientes, Fornecedores, Funcionários serão entidades fracas da tabela Pessoa, com isso centralizo todos os Id's na tabela Pessoa e depois relaciono com Telefone.

    Obrigado pela atenção.

    segunda-feira, 19 de novembro de 2012 22:20