É o seguinte, estou criando uma modelagem de cadastro da maneira mais abrangente possivel.
As entidades são Pessoa, Pessoa Física, Pessoa Jurídica, Fornecedor e Cliente
Abaixo a entidade pessoa. Eu adiciono a pessoa os dados de contato e endereço para facilitar as consultas futuras.
public class Pessoa { private String ativo; private String apelido; private Endereco endereco; private String dataAtualizacao; private String foneResidencial; private String nome; private String foneCelular; private String foneProfissional; private String sexo; private String dataNascimento; private String dataCadastro; private String email; }
Pessoa Fisica ta tranquila
public class PessoaFisica { private String estadoEmissor; private Pessoa pessoa; private String RG; private String orgaoEmissor; private String dataAtualizacao; private String paisNascimento; private String CPF; private Profissao profissao; private String localNascimento; private String estadoNascimento; private EstadoCivil estadoCivil; }
Pessoa Juridica também ta tranquilo
public class PessoaJuridica extends EntidadeAbstrata implements Serializable { private String nomeFantasia; private Pessoa pessoa; private String Razao; private String CNPJ; }
O que ta complicando pra mim é entender Cliente e Fornecedor.
Primeiro quais atributos os diferenciariam dentro da base.
E o que eu acho mais dificil é como meu cliente ou Fornecedor poderia ser Pessoa Fisica
ou Pessoa Juridica
estando dentro da mesma tabela.