Dica de Desenvolvimento Relacional
Salve galera bom dia,
Estou estudando e fazendo alguns CRUDs para aprender em diversas linguagens (php e java) e maneiras de desenvolvimento. Me surgiu uma dúvida quanto a banco de dados relacional.
Ao desenvolver um sistema de gestão empresarial ERP, gostaria de saber qual é a melhor forma de fazer o relacionamento de tabelas como cliente, fornecedor, empresa etc... ao invés de ter uma tabela para cada entidade. Ex:
A tabela Parceiro tem todas as informações de pessoa, tais como nome, cpf, cnpj, dtnascimento etc..
A tabela Cliente tem todas as informações de cliente exclusivas, e está relacionada ao parceiro. Sendo assim o CRUD tem q gravar nas duas tabelas de uma vez só.
A tabela Funcionário tem todas as informações de funcionário tais como dtcontratação, pis, ctps etc...
Sendo assim, o CRUD de cliente terá de gravar as 2 tabelas ao mesmo tempo, uma com a chave estrangeira da outra. Ex: ParceiroCodigo:1,Parceironome:Cliente exemplo; ClienteCodigo:1, ClienteDtAberturadaLoja;
OU
Criar uma tabela para cada entidade, com todos os dados independente se estão repetidos ou não..Exemplo:
A tabela cliente possui todos os dados padrão tais como nome, cnpj, dt nascimento e os dados referente apenas a cliente etc...
A tabela funcionario possui todos os dados padrão tais como nome, cnpj, dtnascimento etc..
Desta forma o CRUD iria gravar apenas 1 tabela para cada situação. ClienteNome: Cliente exemplo, ClienteDtAbertura, etc.
Obviamente existirá relacionamento com outras tabelas, como por exemplo tabela de UF, Cidades, Localidade, porém será feito com chave estrangeira e gravará apenas em uma tabela no CRUD.
Estaria errado fazer de alguma dessas formas? Qual a melhor maneira de se fazer? Qual a desvantagem de utilizar a menos indicada?
Muito obrigado, bom dia a todos.Discussão (0)
Carregando comentários...