整数作为“价格”列的数据类型

时间:2011-12-16 03:29:46

标签: php mysql database

我正在考虑使用INT作为数据库表的Price列的数据类型。然后,当在网站上显示价格时,我只使用一个PHP函数来格式化整数并在适当的位置显示逗号和点。这是错的吗?如果我这样做,我会遇到问题吗?

2 个答案:

答案 0 :(得分:0)

这就是我们网站处理定价的方式。从长远来看,计算最终价格会更容易,添加/减去int比浮点数或小数更容易(在我看来)。另一个方面是,在客户端而不是数据库中设置特定于区域设置的定价时,可以更轻松地更改区域设置。所以,如果你使用较大的美元值,我会使用int或bigint。

答案 1 :(得分:0)

是的 - 但它们很容易解决。您还需要通过应用于整数或分母来存储缩放因子。缩放因子实现取决于你(可能是固定标度的列表,可能是10的幂,可能是7.36(ugg)的幂)

所以例如你存储1作为价格而-2作为比例然后你可以做1 x 10 ^ -2又名1 * 0.01 = 0.01

我们一直使用扩展来通过线路传输实时市场数据,以提供压缩因子。发送1要便宜得多,知道规模是10 ^ 6,而不是100,000