У меня есть несколько значений, которые поступают с сервера, который необходимо сохранить в моей базе данных. Я не эксперт по MySQL, но я понимаю это достаточно хорошо для базового ввода / вывода. Сейчас я пытаюсь выяснить, какую длину я должен использовать при хранении следующих десятичных знаков.
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)
Я надеюсь, кто-то может предложить правильную длину данных, которую мне нужно использовать для этих значений. AS WELL объясняет, почему они выбрали значения. Или, может быть, ссылку на статью, в которой объясняются децималы MySQL в глубину.
Любая помощь будет оценена по достоинству.
Спасибо!
——- Редактировать ——–
После прочтения документов mysql, это то, что я разрешил следующие десятичные числа:
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)
Из MySQL :
Синтаксис объявления для столбца DECIMAL – DECIMAL (M, D). Диапазоны значений аргументов в MySQL 5.1 следующие:
M – максимальное количество цифр (точность). Он имеет диапазон от 1 до 65. (Старые версии MySQL допускают диапазон от 1 до 254.)
D – количество цифр справа от десятичной точки (шкалы). Он имеет диапазон от 0 до 30 и должен быть не больше M.
Рассмотрим это число: 123456789.12345 здесь M
равно 14
а D
– 5
тогда на основе этого принципа вы можете установить DECIMALS (M, D) для каждого столбца на основе их ожидаемых максимальных значений.