2013-10-05 18 views
9

Ho alcuni valori che provengono da un server che deve essere memorizzato nel mio database. Non sono un esperto di MySQL, ma lo capisco abbastanza bene per l'input/output di base. In questo momento sto cercando di capire quale lunghezza dovrei usare quando memorizzo i seguenti decimali.MySQL: dimensione del tipo di dati decimale

tax_rate [DECIMAL ?,?]: value(0.014840000000) 
units [DECIMAL ?,?]: value(1.00) 
initial_charge [DECIMAL ?,?]: value(2.5110) 
charge [DECIMAL ?,?]: value(2.8967) 
link_tax [DECIMAL ?,?]: value(0.385652) 
exempt [DECIMAL ?,?]: value(0.0000) 
tax [DECIMAL ?,?]: value(0.042986) 
base_price [DECIMAL ?,?]: value(41.8500) 

Sto sperando che qualcuno potrebbe suggerire la lunghezza dei dati corretti ho bisogno di utilizzare per questi valori e di spiegare perché hanno scelto i valori. O forse il link ad un articolo che spiega in modo approfondito i decimali di MySQL.

Qualsiasi aiuto sarebbe apprezzato.

Grazie!

------- Modifica --------

Dopo aver letto la documentazione di MySQL, questo è quello che ho risolto i seguenti decimali lunghezze di essere:

tax_rate [DECIMAL 15,12]: value(0.014840000000) ? max(999.999999999999) 
units [DECIMAL 6,2]: value(1.00) ? max(9999.99) 
initial_charge [DECIMAL 9,4]: value(2.5110) ? max(99999.9999) 
charge [DECIMAL 9,4]: value(2.8967) ? max(99999.9999) 
link_tax [DECIMAL 9,6]: value(0.385652) ? max(999.999999) 
exempt [DECIMAL 9,4]: value(0.0000) ? max(9999.9999) 
tax [DECIMAL 10,6]: value(0.042986) ? max(999999.999999) 
base_price [DECIMAL 10,4]: value(41.8500) ? max(999999.9999) 
+3

In profondità: documenti ufficiali su http://dev.mysql.com/doc/refman/5.0/en/fixed-point-types.html – Amadan

risposta

22

Da MySQL:

La sintassi di dichiarazione di una colonna DECIMAL è decimale (M, D). Gli intervalli di valori per gli argomenti in MySQL 5.1 sono i seguenti:

M è il numero massimo di cifre (la precisione). Ha una gamma di 1 a 65. (Le vecchie versioni di MySQL consentito un range da 1 a 254.)

D è il numero di cifre a destra del punto decimale (la scala ). Ha una gamma da 0 a 30 e non deve essere più grande di M.

Considerate questo numero: 123456789,12,345 mila qui M è 14 e D è 5 poi in base a questo principio è possibile impostare DECIMALS (M, D) per ogni colonna in base ai loro valori massimi attesi.

+1

Impressionante. Questo in sintesi lo riassume ... Modificherò il mio post per riflettere i valori corretti. – user0000001

+0

quindi il punto decimale NON è incluso nella M - correggi? – zonabi

Problemi correlati