【发布时间】:2014-12-05 17:59:46
【问题描述】:
我看到了一些类似问题的答案here 和here。似乎每个人都建议使用 DECIMAL 类型的价格。但是,由于价格通常不会低于 1 美分,我可以通过将单位从“美元”更改为“美分”来使用 INT 类型的价格吗?例如,7.99 美元等于 799 美分。
在存储空间、读/写速度、使用函数(MIN、MAX、SUM 等)时的性能或其他方面,选择 INT 是否比 DECIMAL(9,2) 有任何优势?
【问题讨论】:
-
计算可能更快,但值不太直观。我建议使用更直观的版本,将小数点放在正确的位置——将值存储为美分似乎是一个等待发生的错误。
-
我听说(/看到?)它认为存储整数有性能优势。就个人而言,我不相信。我怀疑数据集必须非常庞大才能有所作为。
-
@GordonLinoff:什么样的错误?这是一种常用的方法。
-
@KarolyHorvath 也许是一个错误,涉及某人将产品添加到数据库并以 5 美分而不是 5 美元的价格出售...
-
@jimmy:啊,你的意思是愚蠢?我怀疑是否有一种方法可以防止这些问题......
标签: mysql