Mysql
 sql >> Database >  >> RDS >> Mysql

Devo memorizzare un campo PRICE come int o come float nel database?

Domanda interessante.

In realtà non sceglierei float nell'ambiente mysql. Troppi problemi in passato con precisione con quel tipo di dati.

Per me, la scelta sarebbe tra int e decimal(18,4) .

Ho visto esempi del mondo reale interi usati per rappresentare valori in virgola mobile. Gli interni delle tabelle di dati di JD Edwards fanno tutti questo. Le quantità sono in genere divise per 10000. Anche se sono sicuro che in-table sia più veloce e più piccolo, significa semplicemente che dobbiamo sempre CAST gli int su un valore decimale se vogliamo fare qualcosa con loro, in particolare la divisione.

Dal punto di vista della programmazione, preferirei sempre lavorare con decimal per prezzo ( o money negli RDBMS che lo supportano).