【问题标题】:How to display prices on the site in different currencies?如何在网站上以不同的货币显示价格?
【发布时间】:2019-09-24 21:28:37
【问题描述】:

该网站有 5 种货币。货物和交货的销售价格以欧元为单位。但客户可以选择首选货币来显示价格。 更好的解决方案是将所有货币的价格保留在“价格”表中或动态转换?

“价格”表的结构:

  • 身份证
  • 货币
  • variant_id
  • 价值
  • 原始值

【问题讨论】:

  • 兑换率经常变化,因此请跟踪您的默认货币的兑换率并动态计算。如果您愿意,您可以缓存这些转换后的价格,并定期刷新它们。
  • @Jonnix,汇率将在午夜按时更新并缓存在redis中。我可以使用这些系数进行动态转换,也可以根据这些系数在“价格”表中更新午夜的价格。从架构的角度来看,哪种解决方案更高效、更正确?
  • 我的默认位置是动态执行(完全个人意见)。计算简单,无需过多处理,当转化率发生变化时也立即生效,无需依赖第二份工作。但也有预先计算的参数。

标签: php mysql database design-patterns database-design


【解决方案1】:

动态。这将是一个简单的JOIN 加上一个计算。

但是,... 显示时ROUND(..,2) 会很诱人。这适用于许多西方货币,但不适用于一些需要小数点后 3 位的海湾国家,或不再使用 Jeons 的韩国。

如果您需要四舍五入到不同数量的位置,请使用存储函数。和/或JOIN 也可能给出小数位数。

【讨论】:

    【解决方案2】:

    答案取决于业务规则。如果可以通过简单的转换计算价格,则仅以某种参考货币存储价格并动态转换。但是,您需要一个日期来存储费率历史记录。当无法动态计算价格时,您应该存储它。也可以使用组合方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-05-31
      • 1970-01-01
      • 1970-01-01
      • 2013-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多