Definir pessoa como cliente/fornecedor/funcionário

Modelagem

21/05/2009

Pessoal,
eu possuo um cadastro de pessoas e cada pessoa pode ser um Cliente e/ou funcionário e/ou Fornecedor.
Por exemplo: Um funcionário da minha empresa pode comprar meu serviço ou produto...e pode me fornecer outros tipos de serviços que terei que pagar à parte.

Como estou pretendendo fazer:
criar 3 campos:
Cliente = S/N
Funcionario = S/N
Fornecedor = S/N

Dizendo se ele é um Cliente, funcionário ou fornecedor.

O que acham dessa prática? quem já teve essa experiência? Existe meios melhores na opinião de vocês?
Abraços.


[vaza]

[vaza]

Curtidas 0

Respostas

Pestana_

Pestana_

21/05/2009

este tópico passou despercebido por mim, não sei se você encontrou a solução, mas vai a minha contribuição.

neste caso eu utilizava o conseito de generalização/especialização, com isso fica fácil!

Pessoa (generalizado)
cliente, funcionario, fornecedor (especializados)


GOSTEI 0
Jair Bg

Jair Bg

21/05/2009

Existe a real necessidade para filtragem (cliente, funcionário e fornecedor)?

o seu cadastro deve ser geral para pessoa porém este tipo de filtragem pode ser feito em outras tabelas.


GOSTEI 0
Eleuterio Gonzalez

Eleuterio Gonzalez

21/05/2009

Crie uma tabela com tipo de pessoa onde vc criara o que a pessoa podera ser , ou mesmo um campo CD_status Tipo Boolean que armazena se pessoa e um cliente = TRue e assim por diante.


Mas eu particularmente criaria uma tabela Cliente outra fornecedor e outra funcionario tendo todas uma FK da tabela pessoas.
GOSTEI 0
Rogerio

Rogerio

21/05/2009

...Mas eu particularmente criaria uma tabela Cliente outra fornecedor e outra funcionario tendo todas uma FK da tabela pessoas.
  Eu prefiro  utilizar este conceito de generalização/especialização. Acredito que fica mais organizado o banco e garante a consistência dos dados.
GOSTEI 0
Thiago Santana

Thiago Santana

21/05/2009

Uma boa dica foi a dada pelo Eleuterio!
Utilize 4 tabelas: Pessoas, CLientes, Fornecedores e Funcionários... Onde todas tenha uma chave estrangeira da tabela pessoas.
Aí vc faz o relacionamento certinho e de acordo com o nível da pessoa vc grava em determinada tabela!
Espero ter ajudado... AbraçoO
GOSTEI 0
Carlos Mazzi

Carlos Mazzi

21/05/2009

Concordo, (up)...
GOSTEI 0
Flavio França

Flavio França

21/05/2009

No meu eterno aprendizado criaria as tabelas cliente funcionário fornecedor, mas adcionaria uma nova tabela o tipo pessoa e ai poderiamos facilmente atribuirmos a cada pessoa uma ou mais funções para uma pessoa, embora veja que somente seja necessário o relacionamento, porque só em ter um relacionamento na tebela fornecedor com a pessoa já indique que uma pessoa fornecedora e também caso seja relacionado com a tabela cliente indique que a pessoa também é um cliente e assim vai.
GOSTEI 0
POSTAR