2008/7/16 Osvaldo Rosario Kussama <[EMAIL PROTECTED]>: > Por que utilizar estas chaves artificiais nestas tabelas?
Há algumas razões, umas mais, outras menos controversas. Talvez o uso menos controverso seja a ausência de boas chaves naturais. O problema é decidir o que são boas chaves naturais; em princípio, todas as chaves naturais são boas, e todas as artificiais são ruins. O caso é que tem muita gente, principalmente usuários de ORMs, que não gosta de chaves compostas. Acha que fica difícil programar. Eu nunca usei ORM, nunca senti na pele, e daí vem minha impressão de que muitos ORMs criam tantos problemas quanto resolvem. Uma razão válida é, em casos extremos, economia de armazenamento em chaves estrangeiras. Imagine uma relação pai com uma chave natural composta razoável, digamos mais de três atributos; e uma relação filha com muito mais tuplas, digamos milhões ou dezenas de milhões a mais, isso rodando num sistema que é gargalo de desempenho. Nesse caso, pode ser que, após testes, valha a pena uma chave primária artificial para emagrecer a tabela filha. Uma vez cheguei num acordo interessante com uma equipe apaixonada pelo Hybernate: eu deixava criar chaves artificiais quando as naturais tinham mais de três atributos. Doutra vez, tive de aceitar as chaves artificiais mas lavei as mãos quanto a desempenho e manutenabilidade (essa palavra existe?) do modelo e da aplicação, e ainda impus chaves alternativas naturais. -- skype:leandro.gfc.dutra?chat Yahoo!: ymsgr:sendIM?lgcdutra +55 (11) 3040 7300 r155 gTalk: xmpp:[EMAIL PROTECTED] +55 (11) 9406 7191 ICQ/AIM: aim:GoIM?screenname=61287803 +55 (11) 5685 2219 MSN: msnim:[EMAIL PROTECTED] _______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
