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