On 21/11/2015 13:05, Tiago José Adami wrote:
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.

Já me deparei com casos onde todos os envolvidos no projeto juravam
que não poderia haver caracteres - não númericos - no valor, como por
exemplo RG e conta bancária. De repente apareceram identificadores de
RG antigos com uma letra e contas de um banco que tinham um "X" como
dígito verificador.

Esta abordagem permite gravar "lixo" no campo, como os traços, pontos,
etc. Mas ainda prefiro criar e manter uma validação para proibir os
caracteres inválidos do que correr o risco de ter que alterar o tipo
da coluna e as variáveis de programa (aplicativos e sistemas) no
futuro.

Tiago J. Adami
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Boa tarde,

Eu também aprendi dessa forma, parafraseando meu professor: De maneira geral, se o campo não for utilizado em cálculo, deve ser string (char, varchar).

Mas lendo os comentários subsequentes vi que pode não ser a maneira mais correta. Meu professor dava originalmente a matéria Engenharia de Software e foi transferido para Banco de Dados, talvez por essa razão ele tenha mais essa visão do programador.

  Agradeço ao pessoal da lista por expor práticas melhores.

Atenciosamente,
  Flávio Silveira
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a