Olá pessoal,

É minha postagem no grupo. Espero não tá falando bobagem... :)

Fiz uma busca rápida na lista e não encontrei nada com o termo "Controle de
Documentos Entregues", então coloco aqui a dúvida, se alguém puder ajudar...

É o seguinte, comecei agora um projeto usando PostgreSQL. É um sistema que
vai ter um controle dos documentos entregues por um aprendiz, tais como
RG, CPF, Comprovante de Residência, Comprovante de Escolaridade (CE) etc.

Documentos como CE devem ser entregues periodicamente.

Toda entrega de documento deve constar no histórico do aprendiz (na verdade
todo e qualquer evento que aconteça com o aluno vai para o histórico)

A primeira dúvida é: como posso fazer uma modelagem simples para isso?

Pensei na seguinte modelagem:

Aprendiz
-----------
id serial
matricula varchar
nome varchar
... outros campos


ItemHistorico
------------------
id serial
idAprendiz  integer       {FK para Aprendiz, formando uma relação de 1
aprendiz para muitos itens. Na modelagem OO eu tenho List<ItemHistorico> em
Aprendiz}
nomeEvento varchar
descricao varchar
datahoraEvento Timestamp
detalheEvento integer   //aqui eh um número que define o tipo do detalhe do
evento, se é entrega de documentação ou se é outro tipo de evento
notas


Anexo
--------
id serial
descricao varchar
dados  bytea
idItemHistorico {FK para ItemHistorico, formando uma relação de 1 item para
muitos anexos. Na modelagem OO eu tenho List<Anexo> em ItemHistorico}


DocEntregue
----------------
idItemHistorico integer  {PK - mesmo que o id do item. No OO DocEntregue é
filho de ItemHistorico}
detalheEvento integer   {pseudo FK - é o número do detalhe do evento, neste
caso do tipo Documento Entregue}
rg  boolean      //true se entregou o RG
"RG" varchar   //o número do RG
"dataEmissaoRG" Date //a data de emissão do RG
cpf boolean    //true se entregou o CPF
"CPF" varchar        //o número do CPF
ctps boolean  // true para a CTPS
"CTPS" varchar  // número de séria da CTPS
cr boolean     //true se entregou o comprovante de residencia
pis boolean   //true se entregou o PIS
"PIS" varchar     //número do PIS
nre boolean  //true se entregou o registro de estrangeiro (para o caso)
"NRE" varchar   //número do registro de estrangeiro
ce boolean    // comprovante de escolariade
"CE" String      // número ou protocolo do CE
notas varchar //observações e notas

Então a ideia é que, na tela de detalhes do item de histórico o operador
simplesmente clicasse o item correspondente ao documento entregue.

O segundo problema é: como fazer a consulta (SQL) que retorne todos os
documentos entregues e os que faltam em uma única linha totalizadora a
partir de um conjunto de várias entradas na tabela para cada evento de
entrega de documentação no histórico?


Alguém teria uma ideia alternativa para essa modelagem?

Abraços,

André Cavalcante
Manaus, AM.
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a