Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Devo armazenar um campo PRICE como int ou float no banco de dados?


Pergunta interessante.

Na verdade, eu não escolheria float no ambiente mysql. Muitos problemas no passado com precisão com esse tipo de dados.

Para mim, a escolha seria entre int e decimal(18,4) .

Eu vi exemplos do mundo real inteiros usados ​​para representar valores de ponto flutuante. Todos os componentes internos das tabelas de dados do JD Edwards fazem isso. As quantidades são normalmente divididas por 10.000. Embora eu tenha certeza de que é mais rápido e menor na tabela, isso significa apenas que sempre teremos que CAST os ints para um valor decimal se quisermos fazer alguma coisa com eles, especialmente a divisão.

De uma perspectiva de programação, sempre prefiro trabalhar com decimal por preço (ou money em RDBMSs que o suportam).