Como vocês fazem este tipo de relacionamento?
20/03/2007
0
Estou desenvolvendo uma aplicação de Automação Comercial Client/Server e gostaria de saber o que vocês acham sobre estes relacionamentos que estou pretendendo fazer.
Vamos lá:
Vou ter tabelas em minha aplicação como CLIENTES, FUNCIONÁRIOS, REPRESENTANTES, USUÁRIOS, etc.
Como todas as tabelas acima possuem vários campos em comum (Nome, endereço, telefone, etc), estou pensando em criar uma tabela genérica chamada PESSOA com os campos comuns entre estas tabelas acima e com isso relacionar esta tabela (PESSOA) com as respectivas tabelas: CLIENTES, FUNCIONÁRIOS, REPRESENTANTES, USUÁRIOS, etc.
Ficaria mais ou menos assim:
PESSOA
PES_ID PK
... demais campos comuns dentre as tabelas citadas.
CLIENTE
CLI_ID PK
PES_ID FK
... demais campos específicos desta tabela.
FUNCIONÁRIOS
FUN_ID PK
PES_ID FK
... demais campos específicos desta tabela.
REPRESENTANTES
REP_ID PK
PES_ID FK
... demais campos específicos desta tabela.
USUÁRIOS
USU_ID PK
PES_ID FK
... demais campos específicos desta tabela.
O que vocês acham deste tipo de relacionamento?
Como vocês fazem em suas aplicações?
Desde já agradeço-lhes e aguardo retorno.
Cristiano Mário
Cristianojedi
Posts
20/03/2007
Diegus
Trabalhei com um sistema de contabilidade que, inclusive, essa tabela de ´PESSOAS_GERAL´ era utilizada por outros módulos ....
O chato é ter q todas as vezes q for fazer consulta q tenha o codigo da pessoa pra mostrar um dado dele tem q fazer o JOIN..
Mas num tem problema não... fica mais organizado sim...
20/03/2007
Rjun
Tenho uma tabela chamada CONTATOS. Nela ficam os clientes, fornecedores, funcionários, etc. E tenho as tabelas CATEGORIACONTATO onde ficam a descrição das categorias de contato. E tenho outra tabela que faz o relacionamento entre o contato e a categoria.
CONTATO
----------------------
IdContato (PK)
Nome
etc...
CATEGORIACONTATO
-------------------------
IdCategoriaContato (PK)
Descricao
CATEGORIASDOCONTATO
------------------------------
IdContato (PK)
IdCategoriaContato (PK)
20/03/2007
Cristianojedi
Obrigado pela sua opinião.
[b:b0cd1b34ef]Miyazaki[/b:b0cd1b34ef]
Interessante sua forma de relacionamento. É mais uma opção que eu tenho agora. Obrigado!!!
E no caso dos endereços, vocês gravam em uma mesma tabela junto com a PESSOA ou CONTATOS (como o Miyazaki citou), ou vocês colocam em uma tabela separada tipo ENDERECO para evitar duplicação de informação nas tabelas PESSOA ou CONTATOS?
Desde já, obrigado...
Cristiano Mário
22/03/2007
Cristianojedi
Estou pensando em implementar da forma que você fez.
Só uma dúvida: Se um mesmo contato for FUNCIONARIO e CLIENTE, você adiciona duas categorias para este contato?
Obrigado,
Cristiano Mário
22/03/2007
Rjun
22/03/2007
Cristianojedi
Só mais umna coisa.
Os ID´s da tabela CATEGORIASCONTATO juntamente com as descrições são default no banco, né?
Exemplo:
ID DESCRICAO
1 FUNCIONARIO
2 CLIENTE
3 FORNECEDOR
Pois se você deixar para o cliente cadastras estas informações, quando você for filtrar, por exemplo, os funcionários como você vai saber qual é o ID do funcionário?
Obrigado,
Cristiano Mário
22/03/2007
Rjun
Clique aqui para fazer login e interagir na Comunidade :)