MySQL - 存储货币符号的最佳方式?

时间:2011-08-03 10:49:19

标签: php mysql currency currency-formatting

只是想知道在MySQL数据库中存储货币值和符号的最佳方法是什么?感谢浏览SO,我将我的金额存储为十进制(19,2)vaule - 这很好 - 但更关注货币符号(例如€,£,$等),如我想允许最终用户在设置阶段设置自己的货币单位。我还想避免任何关于字符集的不确定性,这些字符集目前设置在utf8(双方)。

我目前的方法是使用PHP ifelse语句将它们存储为HTML Numerical Codes来过滤输入。这是最好的方法吗?如果不是,那是什么?有需要吗?许多人都提前了!

4 个答案:

答案 0 :(得分:3)

我会使用character (3)并存储货币代码(http://en.wikipedia.org/wiki/ISO_4217#Active_codes)。例如,欧元,美元,英镑等,并且仅在显示时显示相应的符号。

答案 1 :(得分:3)

imho,您可以将数据分成两列

amount      = decimal(19,2) --- question : unsigned for positive value only
currency_id = int(10) unsigned --- which is ID to currency table

currency字段引用另一个表时,
您可以将所有类型的附加信息存储到该表中(例如汇率)
更好地描述你希望如何呈现符号

答案 2 :(得分:1)

您是否考虑过根本不使用符号,而是使用ISO 4217三个字母代码?

如有必要,请使用另一个表来处理从输出到用户友好的符号格式的输出。

答案 3 :(得分:1)

您是否必须根据用户选择的内容转换货币?如果是,您可以创建一个新表来存储货币符号和汇率。

如果您只想根据用户的区域设置显示货币,可能需要尝试国际化库。