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

Modelo Banco de dados Pessoa Física e Pessoa Jurídica


Angelica Flausino

Pergunta

Bom dia,

Estou criando uma plataforma para uma loja virtual. Estou realmente perdida em relação a criação da modelagem, já tentei herança, composição e realmente não está satisfazendo os requisitos do domínio do problema. Vamos pensar eu tenho uma loja virtual que tanto os compradores podem ser pessoas jurídicas como pessoas físicas. Eu criei a generalização Clientes, onde Pessoas_Físicas e Pessoas_Jurídicas são sua especialização com relacionamento 1:1. Seguindo o cenário real de uma loja virtual, o meu carrinho de compras pode ter somente um cliente por cada pedido. Quando eu vou popular as tabelas como cadastro do cliente e adicionar produtos no carrinho de compras, tendo a tabela Clientes eu só poderia ter a informações do cliente, ou seja, meu carrinho de compra ID_Carrinho = X é do Cliente pessoa física ou do cliente pessoa jurídica, nessa tabela eu não posso ter a informação dos dois e nem campos nulos, já que na criação das tabelas especializadas os campos pessoa física e jurídica são não nulos. Enfim, já tentei vários casos, li alguns tópicos aqui mas ainda não esclareceu completamente.

Já pensei até no caso de colocar tudo em uma tabela, porém pensando em emissão de nota fiscal, o tratamento de tributação para pessoa física e jurídica são diferentes. E eu realmente acho que fica estranho o administrador da loja virtual verificar o cadastro dos clientes e olhar o campo CPF_CNPJ, acho que fica um serviço meio porco. Portanto vejo que a única solução é criar dois schemas, um para pessoa jurídica e outro para pessoa física e implementar as consultas de tabelas para o administrador verificar ou pessoa física ou jurídica, ou até mesmo os dois. 

Bom gostaria da opinião de vocês em relação a essa alternativa e se em relação de performance eu vou perder muito na minha aplicação.

 

Obrigada.

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Na tabela Generalizada Clientes coloque somente os atributos que são comuns aos dois tipos de especialização que você quer e mais um atributo que informará se a especialização é Pessoa Fisica e ou Juridica. (Vou chamar de indicadorDePessoa com domínio F ou J)

Exemplo: idCliente, indicadorDePessoa, Nome, Endereço(se for um só), etc.

Na tabela de especialização Pessoa Fisica coloque somente os atributos que são específicos desta especialização

Exemlo: idCliente(FK com relação 1:1 para Cliente), CPF, Sexo, Identidade, etc

Na tabela de especialização Pessoa Jurídica coloque somente os atributos que são específicos desta especialização

Exemplo: idCliente(FK com relação 1:1 para Cliente), CNPJ, Nome Fantasia, InscEstadual, Etc.

Quando você criar uma compra para um cliente específico o que vai entrar é o idCliente, que será a FK para a tabela de clientes.

Informe se precisar mais.

 

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,1k
    • Posts
      651,9k
×
×
  • Criar Novo...