CADASTRO DE CLIENTES - PF E PJ

FBUR 09/09/2014 10:55:45
#441087
Bom dia!

Estou desenvolvendo um sistema onde os clientes são PF e PJ. Normalmente eu crio uma tabela para os dois, idendificando se ele é PF ou PJ.

Mas neste sistema de seguros, os campos PF (rg, cnh, estado civil, e muitos outros ) são bem diferentes dos PJ.

Pegunto: Crio uma tablea com todos os campos de PF e PJ, e preencho só com o que for respectivo de cada um, deixando os demais campos em branco, ou crio uma tabela para PF e outroa para PJ?

Abs.
FFCOUTO 09/09/2014 11:32:53
#441089
Amigo, estou passando pelo mesmo problema. No meu caso, ainda tem um agravante: tenho clientes, fornecedores, vendedores, motoristas, etc. Todos de forma geral são pessoas. Depois de muito analisar, pesquisar e por várias tentativas e erro, cheguei na modelagem que creio que foi a ideal no meu caso.
Para todos os dados comuns às pessoas criei 4 tabelas, e para cada caso específico outra tabela. Por exemplo, vendo no seu caso, CNH pertence exclusivamente a motoristas, portanto, tenho uma tabela para motoristas contendo apenas esses dados.
A minha estrutura ficou assim:

Tabela PESSOAS
codigo int
nome nvarchar(255)
data_cadastro datetime

Tabela PESSOAS FÍSICAS
id_pf int (PK)
id_pessoa int (FK)
cpf nvarchar(11)
rg nvarchar(20)
data_nascimento datetime
apelido nvarchar(30)

Tabela PESSOAS JURÍDICAS
id_pj int (PK)
id_pessoa int (FK)
cnpj nvarchar(14)
inscricao nvarchar(20)
data_abertura datetime
fantasia nvarchar(100)

Tabela PESSOAS RELAÇÃO
id int (PK)
id_pessoa int (FK)
id_tipo int (FK)
status int
ativo bit

Tabela MOTORISTAS
id_motorista int (PK)
id_pessoa int (FK)
cnh nvarchar(12)
etc

Qualquer dúvida, entre em contato.
FBUR 09/09/2014 14:24:09
#441097
Pois é, essa parece ser a melhor opção mesmo.

Obrigado!

Abs.
LCSD 23/09/2014 10:42:17
#441447
Eu trabalho com sistemas de seguros para uma grande instituição bancária. E aquí nós definimos o cliente na base de dados se ele é PF ou PJ pelo [Ô]tamanho[Ô] de caracteres que possui o campo CPFCNPJ

Ou seja, na hora do cadastro, em tela, o usuário escolhe se é CPF ou CNPJ, e em tela fazemos o tratamento dos dados se é válido ou não.
Na hora de gravar, não gravamos se é CPF ou CNPJ, apenas gravamos os números e todo o processamento do sistema (inclusive os em batch) fazem a contagem deste campo e o identifica que tipo de cliente é.

Essa nossa tabela os nomes dos campos são genéricos, facilitando assim a identicação universal no sistema.
Não temos campo como NOME_CLI/RAZAO_SOCIAL, o campo se chama NOME. Enfim, esse cara pra gente (independente quem seja), é um Segurado e assim que o tratamos......

Segurado, Apólice, Estipulante, Sub-Estipulante....... Nomes voltados ao seguro.
FBUR 23/09/2014 15:41:44
#441459
Mas e os campos somente de PF, como [Ô]sexo[Ô] e [Ô]estado civil[Ô]?

FBUR 26/09/2014 16:24:02
#441542
Resolvi criar uma tabela clientes com os campos comuns:

=== tbl_clientes
- nome
- tipo_cliente // se é PJ ou PF
- tipo_numero // numero do CPF ou CNPJ
- telefone
- email

Criei também uma tabela complemento, caso o cliente cadastrado seja PF, com os campos relacionados somente a PF:
=== tbl_complemento
- sexo
- dt_nascimento
- estado_civil
- cnh
- rg

Tópico encerrado , respostas não são mais permitidas