Каков адекватный тип поля MySQL для весовых (в килограммах) и высоты (метров) данных?Тип поля MySQL для данных о весе и высоте
ответ
Это все зависит. Существуют преимущества и недостатки различных числовых типов:
Если вам абсолютно необходимо, чтобы высота/вес были точно определенным числом знаков после запятой и не подвержены проблемам, которые могут иметь числа с плавающей запятой, используйте decimal() (decimal принимает два параметра, количество цифр> 1 и количество цифр < 1, поэтому десятичная (5,2) будет способна хранить числа с точностью до 0,01 и выше 999.99). Исправлена точность математики немного медленнее, и это более дорого, чтобы сохранить их из-за алгоритмов, участвующих в этом. Абсолютно обязательно хранить валютные ценности или любую ценность, которую вы намереваетесь выполнять математику, с использованием валюты как числовой(). Если вы, например, платите людям за фунт или за метр за ребенка, это должно быть числовое().
Если вы согласны с тем, что некоторые числовые значения будут менее точными, чем другие, используйте FLOAT или DOUBLE в зависимости от величины точности и размера номеров, которые вы храните. Плавающие точки - это аппроксимации, основанные на том, как компьютеры делают математику, мы используем десятичные точки, чтобы обозначать из 10 степеней, компьютеры делают математику в base2, они не сопоставимы напрямую, поэтому чтобы обойти эти алгоритмы, были разработаны для случаев, когда 100 % не требуется, но требуется больше скорости, чего не может быть достигнуто путем моделирования ее с помощью целых чисел.
Для получения дополнительной информации:
http://dev.mysql.com/doc/refman/5.0/en/numeric-types.html http://dev.mysql.com/doc/refman/5.0/en/fixed-point-types.html http://dev.mysql.com/doc/refman/5.0/en/floating-point-types.html
Я не считаю, что десятичная (5,2) будет хранить значения размером 99999,99. Первое число - это общее количество цифр. Doc: https://dev.mysql.com/doc/refman/5.7/en/fixed-point-types.html «Стандартный SQL требует, чтобы DECIMAL (5,2) мог хранить любое значение с помощью пяти цифры и два десятичных знака, поэтому значения, которые могут быть сохранены в столбце зарплаты, варьируются от -999,99 до 999,99. " –
Спасибо @JRLawhorne, это было исправлено. – hsanders
Вы будете использовать целые числа или только числа с плавающей точкой? Какое максимальное значение вам необходимо сохранить? Будете ли вы хранить отрицательные числа или только положительные? – Wiseguy
Он должен рассматривать плавающие точки, которые я думаю. EX: 80,550 (80 k, 550 gr.) Наибольшие значения для младенцев (10k, 1m). Конечно, все позитивы. LOL –