我正在构建一个允许用户以不同货币格式输入值的应用程序。
我最初的想法是将数据保存为以下格式。
- 金额 - 字符串
- 货币 - 具有 ISO 4217 货币代码的字符串,例如 GBP、USD、RUB
这种设计是个好主意还是应该用于金额字段、整数、小数或浮点类型?
我不确定不同样式的格式将如何影响存储。
我正在构建一个允许用户以不同货币格式输入值的应用程序。
我最初的想法是将数据保存为以下格式。
这种设计是个好主意还是应该用于金额字段、整数、小数或浮点类型?
我不确定不同样式的格式将如何影响存储。
我的投票是:
DECIMAL(18,4)
-> 您当然可以根据需要更改大小。我不太了解我的货币,无法告诉您需要多少个小数位,所以我决定使用 4 个。我知道至少存在 3 个(请参阅iPhone-SDK 中的各个国家/地区的“货币小数位宽度”)为什么要使用 FK 参考和货币表?然后,您可以将更多信息与每种货币一起存储(例如相关文化或格式信息),并在必要时添加一个包含汇率的附加表,以便您可以将所有内容添加到一种基础货币中。
此外,现在存储很便宜。
笔记:
我不会用一个字符串来表示金额,因为你不能添加它们并且你不能(很容易地)按它们订购。您还会丢失金额确实是数字的内置验证。
我也不会选择浮动金额,因为货币金额应该是准确的。您不想对每个结果进行四舍五入来显示它;如果你在错误的方向上偏离了一分钱怎么办?