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

Responder a