Лучший тип данных mysql для граммов, миллиграмм, микрограммов и килоджоулей - PullRequest
1 голос
/ 01 декабря 2009

Я очень сомневаюсь в типе данных моей базы данных, мне нужно использовать разные единицы измерения, потому что у меня разные элементы и разные масштабы, и я уверен в используемых пределах, потому что я беру их из стандартных элементов, но Я боюсь за разнообразие.

Просто подумайте, что я работаю со 100 граммами продукта и беру из него все элементы, поэтому я уверен, что я не могу перебрать 100 граммов белков, но я могу достичь 3500 килоджоулей или 3,27 миллиграммов железного элемента. />

Так что мне нужны разные типы данных, я думаю, но я не уверен насчет правильных.
Я покажу максимальные значения, чтобы быть более понятным в отношении единиц измерения:

grams          99,99 g
milligrams   9999,99 mg
micrograms  99999    µg
kilojoule    9999    kj

Итак, каков правильный путь?
Я уверен, что лучший способ (лучшая производительность) - хранить различные элементы со стандартными значениями (например, килоджоулей для калорий), но каковы эквиваленты типа данных?

Ответы [ 3 ]

2 голосов
/ 01 декабря 2009

Для максимального десятичного числа 999999,9999 в текущей версии MySQL вам необходимо определить поле как:

DECIMAL (10, 4)

(его легко спутать с DECIMAL (6, 4), который был правильным в старых версиях MySQL, но неверный в последних)

СМ.:

Десятичные (3,2) значения в MySQL всегда равны 9,99

Что именно M, D означает в десятичном виде (M, D)?

0 голосов
/ 01 декабря 2009

Используйте MySql DECIMAL с точностью, как требуется. FLOAT может не дать вам точности, необходимой для точного хранения значений.

0 голосов
/ 01 декабря 2009

Я думаю, что вы можете выбрать тип данных DECIMAL для таких данных. Вы можете указать, сколько символов нужно хранить до запятой и после. Как это:

DECIMAL (6, 4)

означает, что в этом поле можно сохранить максимальное значение 999999,9999.

...