[Prévia] [Próxima] [Prévia por assunto] [Próxima por assunto]
[Índice cronológico] [Índice de assunto]

RE: Re: Convenções para a primeira etapa do projeto



Leonardo Rochael Almeida writes:
 > 
 > Olá profesor,
 > 
 > On Thu, 14 Oct 1999, Francisco Reverbel wrote:
 > 
 > > [...]
 > >  
 > > 2) Os códigos das Parts implementadas pelo servidor da equipe NN devem
 > >    ser prefixados pela string "reposNN-". Exemplo de códigos de peças
 > >    implementadas pelo servidor da equipe 7: 
 > > 
 > >      "repos07-001"
 > >      "repos07-ab"
 > >      "repos07-qualquer-coisa-pode-aparecer-aqui"
 > > 
 > 
 > Isso eu não entendi... Qual o propósito do código da peça carregar o nome
 > do respositório junto?

É garantir que não haverão duas peças com o mesmo código. 

 > Eu acho que se deveria padronizar, por exemplo, o
 > conjunto de caracteres que pode compor o código da peça (só letras e
 > números, ou só números, por exemplo), mas ter o nome do repositório junto,
 > pelo que eu me lembre, vai até contra umas recomendações sobre chaves
 > primárias em base de dados, a de que sejam completamente arbitrárias, não
 > carregando, em si, informações que estão (ou deveriam estar) presentes em
 > outros campos, como é o caso do nome do repositório.

Certo, mas essa recomendação não é um dogma absoluto. O livro de bancos
de dados do Valdemar tem uma excelente discussão sobre esse assunto. Ele
diz que caso se considere a possibilidade de embutir informações numa
chave deve-se analisar a situação e avaliar o que se ganha e o que se
perde embutindo informações na chave.

Em nosso caso, escolhendo códigos de peças que são logicamente pares

   (id_do_repositório, id_da_peça_dentro_do_repositório)

ganhamos duas coisas:

  - É bem fácil garantir que não haverão duas peças com o mesmo código.

  - Os códigos de peças serão relativamente "amigáveis" para usuários
    humanos. Lembre-se que você precisará digitar ou escolher códigos de
    peças quando estiver interagindo com o seu cliente. Seria muito
    chato lidar com códigos de peças que fossem como os UUIDs
    (identificadores universalmente únicos) do DCE...

Reverbel