我正在建立一个电子商务网站,并希望在有限的时间内为某些商品提供折扣。
我的产品表(MySQL)如下所示:
Product - productId - Name - Weight - Price (price as on the cover of the item)
我是否应该为交易制作另一张 table :
Deals - dealID - productID (Foreign Key) - discount (fractional value: percentage) - description
用于检索项目:
- q1:在 products 中查找 productID = 交易表中所有 productID 的所有产品
- q2:使用交易表中的折扣更新价格
- q3:退回所有产品
有没有更好的方法来做到这一点?另外,如果交易只存在有限的时间,我该如何处理?
编辑: 我想显示我们为每种产品提供多少折扣。因此,我需要每个产品的两个值,原价和给定持续时间的折扣价。
我发布了 crontab here 提出的解决方案的后续内容
最佳答案
您可能会考虑将开始时间戳和结束时间戳添加到您的 Deals
表中。这样,您就可以检查以确保当前日期介于交易的开始日期和结束日期之间。
您的 Deals
表实际上并不需要 dealID
- 它可以使用 productID
和折扣开始日期作为键值。此外,根据给定商品的价格可能有多高,请记住使您的 discount
字段足够精确(例如 DECIMAL 12,8
)。
如果是我,我实际上会关闭Product
表并创建一个ProductPricing
表,而不是创建一个Deals
表。该 ProductPricing
表将包含 productID
和作为关键字段的开始时间戳,然后还有一个结束时间戳以指示该价格何时更改。当然,还有商品的价格。
关于mysql - 如何模拟数据库中项目的折扣?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8576536/