体重和身高数据的 MySQL 字段类型

Posted

技术标签:

【中文标题】体重和身高数据的 MySQL 字段类型【英文标题】:MySQL field type for weight and height data 【发布时间】:2012-06-24 02:41:58 【问题描述】:

对于体重(公斤)和身高(米)数据来说,什么是适当的 mysql 字段类型?

【问题讨论】:

您将只使用整数还是浮点数?您需要存储的最大可能值是多少?你会存储负数还是只存储正数? 我认为应该考虑浮点数。例如:80,550 (80 k, 550 gr.) 最大值适用于婴儿 (10,000, 1m)。当然,所有的积极因素。哈哈 【参考方案1】:

这一切都取决于。不同的数值类型各有优缺点:

如果您绝对需要高度/体重恰好是一定的小数位数并且不受浮点数可能导致的问题的影响,请使用decimal()(小数有两个参数,位数> 1并且位数

如果您愿意接受某些数值比其他数值更不精确的可能性,请使用 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 这样大的值。第一个数字是总位数。文档:dev.mysql.com/doc/refman/5.7/en/fixed-point-types.html“标准 SQL 要求 DECIMAL(5,2) 能够存储任何五位和两位小数的值,因此可以存储在薪水列中的值范围为 -999.99 到 999.99。”

以上是关于体重和身高数据的 MySQL 字段类型的主要内容,如果未能解决你的问题,请参考以下文章

ruby 上使用 lbs 或 ' 和 " 符号输入时如何验证表单字段中的身高和体重

数据库中的计算字段 - Laravel

python 实现复合字段排序,如 :身高一样比体重,如何实现呢?

对象,类,字段,参数,属性的区别

数据库篇:mysql表设计原则-三范式

浮点型+字符(串)类型+时间类型+枚举与集合类型+约束条件