logo DevMedia  
Home Entenda o site Revistas Canais Cursos Palestras Suporte Fórum +Serviços Assine Compre Créditos

Edição do Mês
  Fórum DevMedia
Fórum de Discussão
Conheça também o NOVO fórum da DevMedia, no endereço: www.devmedia.com.br/forum
O novo fórum possui diversas vantagens! Saiba mais em
www.devmedia.com.br/articles/viewcomp.asp?comp=14726
Estamos sempre trabalhando na melhora do site como um todo! Bons códigos!
Equipe DevMedia

 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos  RegistrarRegistrar   
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 
Edição do Mês

Ajuda com modelagem
 
Novo Tópico   Responder Mensagem    Fórum DevMedia - Índice do Fórum -> DBA Area
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
robson76
Novato


Registrado em: Sábado, 10 de Março de 2007
Mensagens: 2

MensagemEnviada: Sáb Mar 10, 2007 11:17 am    Assunto: Ajuda com modelagem Responder com Citação

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.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
frare
Membro Junior


Registrado em: Terça-Feira, 15 de Abril de 2003
Mensagens: 72

MensagemEnviada: Sáb Mar 10, 2007 3:09 pm    Assunto: Tabelas Responder com Citação

Olá,

Você pode criar uma única tabela de cadastro e uma de auxiliar como exemplo abaixo:

Cadastro
cad_codigo primarykey
cad_nome
cad_end
aux_codigo referência da tabela auxiliar(Foreingkey)
...
Auxiliar
aux_codigo primarykey
aux_descricao
aux_flg_ativo
...
Com a tabela de Cadastro você pode cadastrar todos os envolvidos e pela auxiliar você pode classifica-los.

Wink Espero ter ajudado.

Abraços.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar Email
ARF
Novato


Registrado em: Terça-Feira, 13 de Março de 2007
Mensagens: 38

MensagemEnviada: Qua Mar 14, 2007 9:50 am    Assunto: Responder com Citação

Sugiro q vc crie 4 tabelas:
1 - pessoas > cadastro comum a todos
2 - pessoas_portadoras > aquelas q possuem alguma doença
3 - pessoas_familiares > familiares dos portadores
4 - pessoas_voluntarias > voluntários

A tabela pessoas possui uma PK id_pessoas que é replicada às outras três tabelas, como FK:

pessoas
id_pessoas (pk)
<outras colunas>

pessoas_portadoras
id_pessoas_portadoras(pk, fk de pessoas(pessoas.id_pessoas))
<outras colunas>

pessoas_familiares
id_pessoas_familiares(pk, fk(pessoas.id_pessoas))
<outras colunas>

pessoas_voluntarias
id_pessoas_voluntarias(pk, fk(pessoas.id_pessoas))
<outras colunas>

Assim, vc tem um cadastro único de todas as pessoas (portadoras, familiares, voluntárias) e usa a fk de pessoas.id_pessoas nas outras três tabelas, para informar que a pessoa é uma portadora, familiar ou voluntária, de acordo com o caso.

Seria mais ou menos isso.

ARF.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
robson76
Novato


Registrado em: Sábado, 10 de Março de 2007
Mensagens: 2

MensagemEnviada: Sex Mar 23, 2007 3:35 pm    Assunto: Responder com Citação

Obrigado pelas sugestões!

Robson
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    Fórum DevMedia - Índice do Fórum -> DBA Area Todos os horários são GMT - 3 Hours
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibído.
Responder Tópicos Proibído
Editar Mensagens: Proibído.
Excluir Mensagens: Proibído.
Votar em Enquetes: Proibído.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB