我正在开发必须处理多种货币(美元、欧元、日元)的信息系统。假设用户可以将产品添加到系统中。用户在 2017 年 2 月 13 日添加产品 #1,价格 2000,货币日元。用户在 2017 年 2 月 14 日添加产品 #2,价格 25,货币美元。
稍后(2017 年 2 月 15 日)用户可以查看和过滤他的产品,假设用户想要以美元查看产品并且有一个价格范围过滤器。
目标:
- 用户设置了一些价格范围,我必须在数据库中正确找到这些产品
我目前的做法是:
- 我已经决定,欧元是我的统一货币
- 当用户添加产品时 - 使用今天的汇率将每个产品价格转换为欧元
- 在数据库中,存储原始价格和货币(来自用户输入),存储转换价格(欧元)
- 过滤器中的价格范围由今日汇率初始化,因此 2000 日元转换为美元作为下限(17.5 美元),20 美元作为上限
问题:
- 用户设置限制从 17.5 美元到 20 美元
- 我将 17.5 美元转换为 EUR_value_1,将 20 美元转换为 EUR_value_2
- 选择到 EUR_value_1 和 EUR_value_2 之间 price_unified 的数据库
- 值与数据库中的产品不匹配,因为使用率可能更高/更低(每天),因此值不同
我的问题是:
- 在数据库中存储这些产品、价格、货币的正确方法是什么?我应该存储所有货币价值吗?
- 如何处理前端行为作为某种货币的价格范围过滤器,但仍然能够正确地在数据库中找到产品?
- 我应该创建一个 cron 以按今天的汇率重新转换所有价格吗?