关于数据库表中一个字段属性的选择问题

来源:2-3 补充敲表sql语句及表内容介绍

HQ今日磨墨

2017-04-02

比如 oder_basic 表中的 total_price 字段的属性,设置为 INT(11), 项目中后台通过将单位设置为分存储,前端显示除以100,即可得到精确的数字。
那么,如果使用 BigDecimal 存储是不是更加方便。 INT 存储 和 BigDecimal 存储有效率上的考虑吗?

写回答

2回答

雲中菩提

2017-04-02

MySQL中与Java的BigDecimal对应的数据类型是Decimal(m,d)。占用字节数是随着精度增长而增长的(m+2)。而INT固定占用4个字节。在本系统中,数额精度已经固定到了小数点后两位,而且不会出现超大数额,采用INT无可厚非。微信支付API中的订单金额就是采用INT类型的。

0
1
HQ今日磨墨
明白了,谢谢
2017-04-02
共1条回复

moocer

2017-04-02

BigDecimal在java中做数字运算比较好,不会出现溢出,这个要优于int、long、double、float等等类型。数据库存储方式都可以,采用int也是比较简单的方式,同时业内这么使用的也很多,不会带来数据不准确的问题

2
2
moocer
回复
HQ今日磨墨
不用客气!
2017-04-02
共2条回复

Java Spring带前后端开发完整电商平台

工具组件封装+支付回调扩展+电商设计思想经验分享

612 学习 · 186 问题

查看课程