【问题标题】:Changing Default Currency in shopping cart更改购物车中的默认货币
【发布时间】:2012-08-05 04:47:36
【问题描述】:

如果这个问题看起来可能重复,我很抱歉。请把我链接到原文。

我正在用php和mysql开发一个购物车。

在管理面板中,可以设置多种货币类型,并且可以添加新的货币类型。它将具有默认货币和覆盖率。 我的问题是更改默认货币类型时。

这就是我的桌子的样子

**Currency**
------------------------------------------------------------------------------
ID    CurrencyType        ConversionRate           IsDefault
------------------------------------------------------------------------------
1       type1                 -                      y
2       type2                 2.0                    n
3       type3                 3.0                    n
------------------------------------------------------------------------------

**Product**
------------------------------------------------------------------------------
ID     Rate        
------------------------------------------------------------------------------
1      100
2      200      
------------------------------------------------------------------------------

这里是产品 1 的价格

(100) for currency type1
(100 * 2.0) for currency type2
(100 * 3.0) for currency type3

在管理面板中,将添加相对于默认货币类型的兑换率。

在此处更改默认类型时,我可以更新货币表中的兑换率。 但我必须更新产品表中的费率。更改产品表中所有产品的费率,让我觉得我错了。

还有其他更好的方法吗?请指教。

【问题讨论】:

  • 是否有理由需要产品表而不是在 php 中进行这些计算?这似乎是多余的。
  • 管理员将以默认货币输入新产品的价格。
  • 抱歉,alex 没能找到你。你能解释一下吗?
  • 对不起,我想我可能误解了你的初衷。因此,如果您决定切换到默认的 CurrencyType type2,则 type1 的 ConversionRate 将更改为 0.5,对吗?您希望产品 1 和 2 的 Rate 分别更改为 200 和 400?
  • 是的,类型 1 的转化率到 0.5..

标签: php mysql shopping-cart


【解决方案1】:

现在我理解了您的问题,我相对确定您必须更新这两个表。如果您只是想以不同的转换率向用户显示表格但保持基本成本相同,那么您始终可以将值存储在 CurrencyType type1 中,但将其转换为 type2type3 in php 向用户显示时。但是,如果您希望在更新默认 CurrencyType 时更新 Product 表中的实际值,而不仅仅是更新它们向用户显示的方式,那么您必须更新这两个表。

幸运的是,SQL 使这变得非常简单,因为您实际上所做的只是将当前的 Rate 值乘以您要更改为的 ConversionRate。因此,如果您有一个 php 变量在将其设为默认值之前存储新的CurrencyTypeConversionRate

UPDATE Product
SET Rate = Rate * oldConversionRate

应该使用新的Product 费率更新 Product 表中的所有行。让我知道这是否是令人困惑的措辞,或者您需要更多说明。

【讨论】:

  • 更新整个产品表不是一个好的练习仪式。?
  • @ravz 将数据库中的所有产品费率存储在一个CurrencyType 中,然后使用他们选择的ConversionType 将它们显示给客户,这将是一个更好的解决方案。这样Currency 表中的ConversionRatesProduct 表中的Rates 都不会改变。您的 php 代码将简单地将 Product 表中的项目 Rate 乘以默认 CurrencyTypeConversionRate
【解决方案2】:

我找到了一个不需要更新产品表的解决方案。我将有一个隐藏的货币类型,这将是计算的默认值。产品表中的汇率将始终为此 *1币种

可以在管理面板中进行必要的计算,以便管理员仍然可以在他的默认货币类型中输入新产品的汇率..

【讨论】:

    猜你喜欢
    • 2021-06-22
    • 1970-01-01
    • 2012-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-04
    • 1970-01-01
    相关资源
    最近更新 更多