关于数据库表中一个字段属性的选择问题
来源:2-3 补充敲表sql语句及表内容介绍
HQ今日磨墨
2017-04-02
比如 oder_basic 表中的 total_price 字段的属性,设置为 INT(11), 项目中后台通过将单位设置为分存储,前端显示除以100,即可得到精确的数字。
那么,如果使用 BigDecimal 存储是不是更加方便。 INT 存储 和 BigDecimal 存储有效率上的考虑吗?
写回答
2回答
-
MySQL中与Java的BigDecimal对应的数据类型是Decimal(m,d)。占用字节数是随着精度增长而增长的(m+2)。而INT固定占用4个字节。在本系统中,数额精度已经固定到了小数点后两位,而且不会出现超大数额,采用INT无可厚非。微信支付API中的订单金额就是采用INT类型的。
012017-04-02 -
moocer
2017-04-02
BigDecimal在java中做数字运算比较好,不会出现溢出,这个要优于int、long、double、float等等类型。数据库存储方式都可以,采用int也是比较简单的方式,同时业内这么使用的也很多,不会带来数据不准确的问题
222017-04-02
相似问题