Mysql
 sql >> Base de données >  >> RDS >> Mysql

Dois-je stocker un champ PRICE sous la forme d'un entier ou d'un flottant dans la base de données ?

Question intéressante.

Je ne choisirais pas réellement float dans l'environnement mysql. Trop de problèmes dans le passé avec la précision avec ce type de données.

Pour moi, le choix serait entre int et decimal(18,4) .

J'ai vu des exemples réels d'entiers utilisés pour représenter des valeurs à virgule flottante. Les composants internes des tables de données JD Edwards font tous cela. Les quantités sont généralement divisées par 10000. Même si je suis sûr que c'est plus rapide et plus petit dans le tableau, cela signifie simplement que nous devons toujours CAST les ints en une valeur décimale si nous voulons faire quoi que ce soit avec eux, en particulier la division.

Du point de vue de la programmation, je préférerais toujours travailler avec decimal pour le prix (ou money dans les SGBDR qui le supportent).