Olá, novamente,

2016-03-02 9:52 GMT-04:00 Guimarães Faria Corcete DUTRA, Leandro <
[email protected]>:

> 2016-03-02 9:13 GMT-03:00 Andre Cavalcante <[email protected]>:
> > Aprendiz
> > -----------
> > id serial
> > matricula varchar
> > nome varchar
>
> Cada um é uma chave?  Ou a chave são os dois atributos?
>

id é uma chave primária porque gerado automaticamente pelo banco - é só o
id do objeto
matricula é uma chave candidata (unique no banco)
nome + nomePai + nomeMae é outra chave candidata (unique no banco)

Mas note que isso é apenas para mater o banco estável e com integridade
relacional. As verificações mesmo são feitas no modelo OO.


>
> > ItemHistorico
> > ------------------
> > id serial   {PK - cada item tem um número que o identifica unicamente. A
> > chave candidata seria dahoraEvento+idAprendiz, obviamente por se tratar
> de
> > um evento discreto no tempo}
>
> Com uma chave natural de apenas dois atributos, eu pensaria seriamente
> em simplificar o modelo eliminando a chave artificial.
>

Pensei nisso também, mas como tudo tem um id e a como parte da chave
candidata em questão é uma data, deixei assim.


>
>
> > Anexo
> > --------
> > id serial {PK - cada anexo tem um id, sem grandes problemas aqui. Não há
> > chave candidata (posso colocar até o mesmo arquivo várias vezes, mas o
> > sistema não precisa verificar isso, cabendo ao operador saber o que está
> > fazendo}
>
> Isso nunca dá certo.  Mesmo que desse operacionalmente, indica um
> problema mais grave de entendimento de modelo e de negócio.
>

Aí é que está, não tem tanta regra de negócio assim associado. É
simplesmente um documento que é anexado a um item de histórico. Podem ser
quantos o operador quiser (e.g. scanner .jpg de RG, CPF ou outro doc). É só
um repositório para cada item, daí a FK com id de ItemHistorico



>
> De qualquer maneira, tens outras questões específicas sobre teu modelo
> proposto?  Ou o que queres são comentários de base como os que fiz até
> agora.
>

Então, como coloquei na 1ª postagem:

1. Alguém teria alguma outra ideia de fazer esse controle de documentos?
2. No modelo proposto, como fazer a SQL que retorne todos o documentos
entregues por um aprendiz?

Abraços e muito obrigado pela paciência.

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

Responder a