Eu não sou DBA e estou desenvolvendo voluntariamente um cadastro web para uma associação que está se formando e estou com algumas dúvidas em relação à modelagem dos dados.
Antes de expor a dúvida, seguem algumas definições:
===================================
- PORTADORES: são as pessoas que possuem a doença, cuja associação está sendo criada em prol deles.
- NÃO PORTADORES: são pessoas que por algum motivo estão ligadas aos portadores (geralmente algum familiar), e quer se cadastrar para receber informações ou qualquer outro motivo.
- VOLUNTÁRIOS: são pessoas que têm interesse em doar um pouco do seu tempo oferecendo seu trabalho voluntário para a associação.
Algumas considerações:
===============
- Para os três há alguma informações (campos) que são comuns, como por exemplo nome, endereço, e-mail, telefone, etc.
- Os PORTADORES e NÃO PORTADORES também podem ser VOLUNTÁRIOS, entretando quando isto ocorrer não gostaria que eles tivessem que preencher novamente outro cadastro (no caso de VOLUNTÁRIOS), uma vez que já teriamos os dados em comum dele cadastrado ou em PORTADORES ou em NÃO PORTADORES.
- Alguém pode se cadastrar apenas como VOLUNTÁRIO.
As situações:
========
1) Meu primeiro impulso foi o de criar três tabelas distintas, uma para cada caso (PORTADOR, NÃO PORTADOR e VOLUNTÁRIO), mas no caso do PORTADOR ou NÃO PORTADOR quiser ser um VOLUNTÁRIO eu teria que duplicar as informações.
2) Se na tabela de VOLUNTÁRIOS eu gravar somete as informações relativas a VOLUNTÁRIOS para quem já estiver cadastrado como PORTADOR ou NÃO PORTADOR, eu teria que deixar vários campos como não obrigatórios.
3) Pensei em montar uma única tabela contendo todos os campos dos três casos, e alguns campos de "flag" para indicar se aquela pessoa é PORTADOR ou NÃO PORTADOR, mas não sei se é o mais viável.
Enfim, estou bastante confuso com que caminho seguir, por isso gostaria muito de algumas opiniões.
Pergunta
robson76
Olá pessoal,
Eu não sou DBA e estou desenvolvendo voluntariamente um cadastro web para uma associação que está se formando e estou com algumas dúvidas em relação à modelagem dos dados.
Antes de expor a dúvida, seguem algumas definições:
===================================
- PORTADORES: são as pessoas que possuem a doença, cuja associação está sendo criada em prol deles.
- NÃO PORTADORES: são pessoas que por algum motivo estão ligadas aos portadores (geralmente algum familiar), e quer se cadastrar para receber informações ou qualquer outro motivo.
- VOLUNTÁRIOS: são pessoas que têm interesse em doar um pouco do seu tempo oferecendo seu trabalho voluntário para a associação.
Algumas considerações:
===============
- Para os três há alguma informações (campos) que são comuns, como por exemplo nome, endereço, e-mail, telefone, etc.
- Os PORTADORES e NÃO PORTADORES também podem ser VOLUNTÁRIOS, entretando quando isto ocorrer não gostaria que eles tivessem que preencher novamente outro cadastro (no caso de VOLUNTÁRIOS), uma vez que já teriamos os dados em comum dele cadastrado ou em PORTADORES ou em NÃO PORTADORES.
- Alguém pode se cadastrar apenas como VOLUNTÁRIO.
As situações:
========
1) Meu primeiro impulso foi o de criar três tabelas distintas, uma para cada caso (PORTADOR, NÃO PORTADOR e VOLUNTÁRIO), mas no caso do PORTADOR ou NÃO PORTADOR quiser ser um VOLUNTÁRIO eu teria que duplicar as informações.
2) Se na tabela de VOLUNTÁRIOS eu gravar somete as informações relativas a VOLUNTÁRIOS para quem já estiver cadastrado como PORTADOR ou NÃO PORTADOR, eu teria que deixar vários campos como não obrigatórios.
3) Pensei em montar uma única tabela contendo todos os campos dos três casos, e alguns campos de "flag" para indicar se aquela pessoa é PORTADOR ou NÃO PORTADOR, mas não sei se é o mais viável.
Enfim, estou bastante confuso com que caminho seguir, por isso gostaria muito de algumas opiniões.
Muito obrigado.
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.