如果这个问题看似可能重复,我很抱歉。请把我链接到原文。
我正在使用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
在管理面板中,将根据默认货币类型添加转化率。
在此更改默认类型时,我可以更新货币表中的转换率。 但我不得不更新产品表中的费率。更改产品表中所有产品的费率,让我觉得我错了。
还有其他更好的方法吗?请建议。
答案 0 :(得分:1)
既然我理解了你的问题,我相对肯定你必须更新两个表。如果您只是想以不同的转化率向用户显示该表但保持基础费用相同,那么您始终可以将该值存储在CurrencyType
type1
中,但将其转换为{{1}在向用户显示时,在php中使用type2
。但是,如果您希望在更新默认type3
时更新Product
表中的实际值,而不仅仅是它们向用户显示的方式,那么您将必须更新两个表
幸运的是,SQL使这很容易,因为你所做的只是将当前的Rate值乘以你将其更改为的ConversionRate。因此,如果你有一个php变量存储新CurrencyType
的{{1}},那么你可以将它设为默认值:
ConversionRate
应使用新的CurrencyType
费率更新Product表格中的所有行。让我知道这是否令人困惑,或者你想要更多澄清。
答案 1 :(得分:0)
我找到了一个解决方案,我不需要更新产品表..我将有一个HIDDEN货币类型,这将是计算的默认值。产品表中的费率将始终为* 1货币类型
可以在管理面板中进行必要的计算,以便管理员仍然可以使用其默认货币类型输入新产品的费率。