Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

FabianoSouza

Tratar informação condicional

Recommended Posts

Não sei se o título do post está condizente com minha dúvida...mas vamos lá.

 

Tentando modelar um sistema de controle de eventos me fiz a seguinte pergunta.

 

"Como tratar os participantes de evento que são funcionários da empresa e aqueles que não são?"

 

Um funcionário tem departamento, código de matrícula, cargo e uma série de outros dados. Já um participante que não é funcionário tem informações um pouco diferentes.

 

Então faço a pergunta aos colegas do fórum. Como modelar o sistema para atender satisfatoriamente dos dois públicos?

 

Crio cadastro separados? Cadastro tudo na mesma tabela mas deixo dos campos como opcionais? Uso apenas informações comuns aos dois públicos (CPF e Nome, por exemplo)?

 

Valer dizer que quanto mais informações puderem ser obtidas, melhor será para a geração de estatísticas.

 

Um help por caridade.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Que metodologia de modelagem está usando ?

 

Pelo que entendi :

 

Em UML poderia ser Generalização

 

Numa modelagem DER poderia ser um atríbuto da tabela.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu vou dar a mesma dica que dei a outro membro.

 

Crie duas tabelas, uma para cada tipo de pessoa, na tabela de clientes você vai marcar as informações referentes a pessoa como cliente e vai dedicar um campo boolean ou binario para a seguinte pergunta: "É funcionário?" se sim você marca a opção sim e marca o código do funcionário, que será cadastrado na tabela funcionários, onde haverá as informações exclusivas do funcionário assim você pode fazer a ligação das duas tabelas com um INNER JOIN apenas pelo Id.

 

Outro método é apenas fazer duas tabelas, uma para cada tipo, sem ter o ID, porém ai as duas não ficariam atreladas e caso você tenha um cliente que também é seu funcionário você vai precisar de dois registros para ele, um em cada tabela, já que na primeira dica que eu dei esse tipo de problema não acontece.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.