none
Relacionanento entre tabelas Pessoa, Cliente e ContasReceber RRS feed

  • Pergunta

  • Olá companheiros. 

    Estou tentando normalizar meu BD ao máximo, mas estou com dúvida sobre como relacionar a tabela ContasReceber com Pessoa/Cliente.

    Minha tabela Pessoa se relaciona com PessoaFisica e PessoaJuridica(Não citadas aqui no modelo) e funcionará como uma repositório de Pessoas no qual cada pessoa que for cadastrada, receberá um ID(PessoaId). Quando uma Pessoa desse repositório tiver que ser cadastrada como um Cliente, basta lançar o PessoaId e, pelo fato de ela ser um Cliente, terá um ID (ClienteId). A ideia é controlar os Ids de Pessoa e Cliente separadamente.

    O Problema é na hora de relacionar com a tabela ContasReceber. Devo relacioná-la com a tabela Pessoa(FK PessoaId) ou com a tabela Cliente(FK ClienteId)? O que vocês acham mais correto e fácil de implementar?

    sábado, 20 de maio de 2017 17:57

Respostas

  • Obrigado por responder Rodrigo... Bom, no meu caso, o relacionamento seria apenas com o cliente... Como estou na fase inicial do projeto, não sei se no futuro poderá existir a possibilidade de outro tipo de pessoa se relacionar. No sistema da empresa onde trabalho, o relacionamento é apenas com Cliente.
    Se você acha muito pertinente se preparar para esta hipótese - outro tipo de pessoa a se relacionar -, você poderia relacionar contas a receber com pessoa, e adicionar em contas a receber uma coluna indicando o tipo da pessoa no registro. Seria interessante aí você ter uma flag na tabela do tipo de pessoa que indicasse se aquele tipo de pessoa permite vínculo com contas a receber. Isto te ajudará na integridade, mas dará mais trabalho. A abstração tem seus prós e contras.

    • Editado Rodrigo CdS sábado, 20 de maio de 2017 19:21
    • Marcado como Resposta Jalber Romano sábado, 20 de maio de 2017 20:36
    sábado, 20 de maio de 2017 19:20

Todas as Respostas

  • Olá, Jalber!

       Depende de qual "tipo de pessoa" faz parte do contexto de contas a receber no seu negócio. Se a pessoa que irá se relacionar com contas a receber sempre será um cliente, o ideal é que o relacionamento seja diretamente com cliente, até mesmo para manter a integridade dos dados, pois jamais uma pessoa que não fosse cliente poderia ter um registro em contas a receber. Agora se qualquer outro tipo de pessoa pode se relacionar com contas a receber, o ideal seria o vínculo com pessoa. Acredito que esta seja uma boa abordagem.

    Bom trabalho!

    sábado, 20 de maio de 2017 18:46
  • Obrigado por responder Rodrigo... Bom, no meu caso, o relacionamento seria apenas com o cliente... Como estou na fase inicial do projeto, não sei se no futuro poderá existir a possibilidade de outro tipo de pessoa se relacionar. No sistema da empresa onde trabalho, o relacionamento é apenas com Cliente.
    sábado, 20 de maio de 2017 19:03
  • Obrigado por responder Rodrigo... Bom, no meu caso, o relacionamento seria apenas com o cliente... Como estou na fase inicial do projeto, não sei se no futuro poderá existir a possibilidade de outro tipo de pessoa se relacionar. No sistema da empresa onde trabalho, o relacionamento é apenas com Cliente.
    Se você acha muito pertinente se preparar para esta hipótese - outro tipo de pessoa a se relacionar -, você poderia relacionar contas a receber com pessoa, e adicionar em contas a receber uma coluna indicando o tipo da pessoa no registro. Seria interessante aí você ter uma flag na tabela do tipo de pessoa que indicasse se aquele tipo de pessoa permite vínculo com contas a receber. Isto te ajudará na integridade, mas dará mais trabalho. A abstração tem seus prós e contras.

    • Editado Rodrigo CdS sábado, 20 de maio de 2017 19:21
    • Marcado como Resposta Jalber Romano sábado, 20 de maio de 2017 20:36
    sábado, 20 de maio de 2017 19:20
  • Obrigado Rodrigo!

    :)

    sábado, 20 de maio de 2017 20:36