只是想知道在 MySQL 数据库中存储货币值和符号的最佳方式是什么?
感谢浏览SO,我将我的金额存储为十进制 (19,2) 值 - 这很好 - 但我更关心货币符号(例如 €、£、$ 等),因为我想允许最终用户在设置阶段设置自己的货币单位。我还想避免任何不确定性,目前设置为 utf8(双方)。
我目前的方法是使用 PHP语句将它们存储为HTML 数字代码ifelse
来过滤输入。这是最好的方法吗?如果不是,那是什么?有没有必要?多谢提前!
恕我直言,您可以将数据分成两列
amount = decimal(19,2) --- question : unsigned for positive value only
currency_id = int(10) unsigned --- which is ID to currency table
当该currency
字段引用另一个表时,
您可以将所有类型的附加信息(例如汇率)存储到该表中,
以更好地描述您希望如何呈现符号
我会使用 acharacter (3)
并存储货币代码(http://en.wikipedia.org/wiki/ISO_4217#Active_codes)。例如,欧元、美元、英镑等,并且仅在显示时显示适当的符号。
您是否考虑过根本不使用符号,而是使用ISO 4217三字母代码?
如有必要,使用另一个表来处理从这些映射到输出时更用户友好的符号格式。
您是否必须根据用户的选择来转换货币?如果是,您可以创建一个新表来存储货币符号和汇率。
如果您只想根据用户的区域设置显示货币,您可能需要尝试使用国际化库。