________________________________ De: Rodrigo Hjort <rodrigo.hj...@gmail.com> Para: Comunidade PostgreSQL Brasileira <pgbr-geral@listas.postgresql.org.br> Enviadas: Terça-feira, 9 de Novembro de 2010 23:00:00 Assunto: Re: [pgbr-geral] campo cpf 1. também usaria char(11) para o CPF: precisaria de uma forte motivação para usar bigint e com isso trocar 11 por 8 bytes no armazenamento... 2. formatação de valores é algo que o SGBD não deveria se preocupar, e se assim o fosse seria interessante criar uma função em SQL (ex: formatar_cpf()) como um wrapper usando o to_char() proposto pelo Osvaldo. 3. gostaria de lembrar que o paquiderme é o SGBD de código aberto mais avançado do mundo, e uma de suas grandes vantagens é a extensibilidade! Isto é, podemos criar um novo tipo de dados, o próprio *cpf*, implementá-lo em linguagem C e obter todas as suas vantagens, incluindo validação e formatação intrínsecas. Vide projeto isn do contrib. 4. o mesmo acima se aplica a um campo para armazenar CNPJ. 5. para RG a coisa fica mais complicada, pois o campo pode ser normalizado, além do que o seu número pode conter letras...! -- Rodrigo Hjort http://agajorte.blogspot.com 2010/11/8 Eduardo Az - EMBRASIS Informática e O&M <eduard...@embrasis.com.br> ?Eu neste caso, acho melhor char(11) só cpf e char(14) cnpj ou cnpj junto >com cpf. >Minhas justificativas: >char porque: este campo não vai ser usado para calculos (tipo salarios, >vendas,etc) e o uso de qualuqer tipo de campo valor ao meu ver é mais >dispendioso para o banco de dados. >char em vez de varchar porque: melhora no desempenho, indexar com char gera >uma resposta mais rápida que em varchar (verifiquei pessoalmente e também >via literatura sobre isto). > >Só não concordo com vc sobre o uso de varchar, pelo motivo citado acima. > >Eduardo Az >Dep.TI >EMBRASIS >+55(11)2122-0241 PABX >+55(11)8125-3845 TIM >+55(11)9826-0138 VIVO >eduard...@embrasis.com.br > Ola a todos, Eu usava campos varchar em campo CPF, mas depois da explicação do Osvaldo e do Fabio mudarei minhas futuras implementações. Muito mais simples usar to_char(), além de fazer todo sentido semântico do assunto. Só tenho uma dúvida: Fabio, Você comentou que usa 4 campos para o RG, no caso de RG de estrangeiros que têm letras antes do número, qual coluna faria ter sentido essa informação? cria-se um quinto campo? Abraço Rodrigo Nunes
_______________________________________________ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral