gpt4 book ai didi

mysql - 后续: how to model discount on items in a database?

转载 作者:可可西里 更新时间:2023-11-01 07:23:34 24 4
gpt4 key购买 nike

我正在建立一个电子商务网站,并希望在有限的时间内为某些商品提供折扣。我想显示我们为每种产品提供多少折扣。因此,我需要每个产品的两个值,原价和给定期限内的折扣价。

这是对 answer 的跟进对于 question我问

架构:

  • 产品

    • 产品编号
    • 姓名
  • 产品定价

    • productId (FK)
    • 开始日期时间戳
    • 结束日期时间戳
    • 价格
    • 原始价格仅适用于我们使用方法 A(稍后出现)

数据:

Product:
1 | Apple
2 | Banana

T1:2011 年 12 月 21 日:此时没有交易

ProductPricing
1 | Dec 20, 2011, 00:00 | Jan 1, 2038, 00:00 | 10$ | 10$
2 | Dec 20, 2011, 00:00 | Jan 1, 2038, 00:00 | 20$ | 20$

T2:2011 年 12 月 24 日:成交! 12月25日14:00-12月26日14:00苹果25%折扣

方法 A.- 查询更新给定持续时间的苹果价格

ProductPricing
1 | Dec 25, 2011, 14:00 | Dec 26, 2011, 14:00 | 7.5$| 10$
2 | Dec 20, 2011, 00:00 | Dec 25, 2038, 00:00 | 20$ | 20$

方法 B。- 查询在给定的持续时间内添加另一条包含苹果价格的记录

ProductPricing
1 | Dec 20, 2011, 00:00 | Jan 1, 2038, 00:00 | 10$ | 10$
2 | Dec 20, 2011, 00:00 | Dec 25, 2038, 00:00 | 20$ | 20$
1 | Dec 25, 2011, 14:00 | Dec 26, 2011, 14:00 | 7.5$| 10$

T3:2011 年 12 月 27 日 - 选项

方法 A.这个时候deal已经过期了,我是不是应该用trigger重置endTimeStamp?

方法 B。我应该删除交易刚刚过期的产品的最新记录吗?

最佳答案

ProductPricing 表的设计使我们永远不必删除旧的定价数据(有时管理层需要基于该数据的报告)。根据您上面的描述,您可以这样开始(我更改了开始日期只是为了很容易看出是的,这是系统投入使用时的原始价格):

ProductPricing
1 | Jan 1, 1970, 00:00:00 | Jan 1, 2038, 00:00:00 | 10$ | 10$

现在假设您为您的苹果提供折扣价,并且您想主动设置销售结束时的系统:

ProductPricing
1 | Jan 1, 1970, 00:00:00 | Dec 20, 2011, 00:00:00 | 10$ | 10$
1 | Dec 20, 2011, 00:00:01 | Dec 26, 2011, 00:00:00 | 7.5$ | 10$
1 | Dec 26, 2011, 00:00:01 | Jan 1, 2038, 00:00:00 | 10$ | 10$

我们在这里做的是:

  1. 使用 2038 时间戳更新现有记录,更改 endDateTimeStamp 字段以反射(reflect)销售的开始
  2. 插入一条新记录来定义销售
  3. 插入另一条新记录以再次反射(reflect)正常价格

由于没有重叠的时间戳,当您查询数据库中的价格时,您一定会得到一条记录。因此,

SELECT p.Name, pp.price, pp.original_price
FROM Product p
INNER JOIN ProductPricing pp ON pp.productId = p.productId
WHERE NOW() BETWEEN pp.startDateTimeStamp AND pp.endDateTimeStamp

将为您提供当前定价的产品列表。

关于mysql - 后续: how to model discount on items in a database?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8578795/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com