4

只是想知道在 MySQL 数据库中存储货币值和符号的最佳方式是什么?

感谢浏览SO,我将我的金额存储为十进制 (19,2) 值 - 这很好 - 但我更关心货币符号(例如 €、£、$ 等),因为我想允许最终用户在设置阶段设置自己的货币单位。我还想避免任何不确定性,目前设置为 utf8(双方)。

我目前的方法是使用 PHP语句将它们存储为HTML 数字代码ifelse来过滤输入。这是最好的方法吗?如果不是,那是什么?有没有必要?多谢提前!

4

4 回答 4

4

恕我直言,您可以将数据分成两列

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

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

于 2011-08-03T10:54:26.843 回答
3

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

于 2011-08-03T10:52:52.423 回答
1

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

如有必要,使用另一个表来处理从这些映射到输出时更用户友好的符号格式。

于 2011-08-03T10:52:26.457 回答
1

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

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

于 2011-08-03T10:54:09.713 回答