2010/1/4 Alexsander Rosa <[email protected]>: > Isso me lembra aquela velha discussão sobre usar CPF/CNPJ como chave > natural, o que é impossível porque inúmeros órgãos públicos compartilham o > mesmo CNPJ.
Há vários motivos pelos quais CNPF ou CNPJ podem não ser chave natural — a questão que se coloca é, justamente, de qual entidade? Acho que eu mesmo já citei o caso de correntista de banco. Há, por exemplo, mulheres casadas que não têm CNPF, porque nunca tiveram vida economicamente ativa, mas têm conta conjunta com o marido. São correntistas sem CNPF. No teu caso, já poderíamos pensar numa entidade órgão público, que certamente tem outra chave. Talvez, várias entidades. Se é prático ou não separá-los numa base de dados, vai depender de muitas variáveis, como dialeto SQL, implementação física, volume de dados, tráfego de transações, ferramental de programação… mas, se não analisarmos as entidades — e para isso chaves naturais são indispensáveis, mesmo que acabem não sendo implementadas nalgum caso extremo —, nunca entenderemos os problemas. > Aqui no RS, por exemplo, simplesmente TODAS as escolas estaduais > usam o CNPJ da Secretaria da Educação, não apenas a raiz, o CNPJ inteiro. > Para o pagamento de empenhos os nomes das escolas precisam estar corretos > até a última vírgula, não dá pra emitir a NF em nome da Secretaria e depois > mandar entregar na escola. No mínimo, há uma entidade escola estadual cuja chave não é o CNPJ. Talvez o nome da escola, por exemplo (sei, sei, nome dificilmente é boa chave, só para provocar a pensar), ou até o nome e o endereço. > É muito mais simples usar um SERIAL para código > de cliente do que tentar achar uma chave natural viável. Sim, mas incorreto. Sendo mais preciso, pode ser necessária uma chave artificial; mas não tentar uma chave natural, mesmo que não seja declarada como a primária, seria convidar problemas pela porta da frente. > Sou totalmente a favor de chaves naturais, uso sempre que possível, mas há > casos em que simplesmente não dá. Não dá o quê? Não dá para usar como chave primária, não estou preocupado. Não dá para declarar, estou para ver um caso. -- skype:leandro.gfc.dutra?chat Yahoo!: ymsgr:sendIM?lgcdutra +55 (11) 3854 7191 gTalk: xmpp:[email protected] +55 (11) 9406 7191 ICQ/AIM: aim:GoIM?screenname=61287803 BRAZIL GMT-3 MSN: msnim:[email protected] _______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
