Em 21 de novembro de 2015 13:05, Tiago José Adami <[email protected]> escreveu:
> Em 21 de novembro de 2015 11:26, Osvaldo Kussama > <[email protected]> escreveu: > > Em 21/11/15, Luciano Reis<[email protected]> escreveu: > >> Bom dia pessoal, eu fiz uma busca sobre tipos de dados para campos > >> específicos no PostgreSQL para gravar CEP,CPF, CNPJ, telefones e valores > >> monetários e encontrei opiniões muito diversas uns defendem que CPF tem > de > >> ser guardado como string outros não. > >> É um primeiro projeto que eu vou iniciar usando o PostgreSQL e não sei > >> tomar essa decisão, como não encontrei nada concreto e fundamentado > estou > >> recorrendo a comunidade. > > > > Creio que todos estes campos sejam numéricos e portanto devem ser > > armazenados como números (inteiro ou decimal de precisão arbitrária). > > Eu pratico a seguinte regra: mesmo que o valor seja numérico, se não > for utilizado para cálculos matemáticos e não for monetário, eu > prefiro armazenar em VARCHAR, e geralmente com um limite maior do que > o atributo exige: para CPF e CNPJ eu uso VARCHAR(20), por exemplo. > > Costumo usar um campo varchar(14) para considerar CPF e CNPJ, onde o dado é gravado já formato, retirando-se os pontos e traços, etc. Também utilizo uma CHECK CONSTRAINT para garantir que sejam gravados dados com 11 ou 14 digitos, ou seja, dados com quantidade de digitos diferentes de 11 e 14 não serão gravados. Devemos considerar que o tipo de dado INT não é recomendado para guardar informações como CPF e CNPJ, pois caso a informação contenha zeros a esquerda, esses zeros serão ignorados e não teremos uma informação íntegra. []s Danilo
_______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
