【发布时间】:2020-06-26 13:36:24
【问题描述】:
背景:
我们正在建立一个促销系统,向注册客户赠送免费产品。我们正在尝试设计一个足够灵活的数据库来处理多种产品和赠品。要求是产品可以在先到先得的基础上以点滴的方式赠送给合格的客户。
示例:
Apple 希望在 3 月份赠送 1000 台 ipad。
他们希望每小时最多赠送 1 个。
他们希望将其提供给加利福尼亚或纽约的客户。
他们希望限制客户可以获得的免费 ipad 数量(每 15 天限制 1 个)。
数据结构:
-
产品 - 每个独特产品 1 个条目。例如苹果iPad
-
ProductGiveAways
- 产品 ID:AppleIpad
- 数量:1000
- 开始日期:03/01/2014
- 结束日期 03/31/2014
- 客户州:加利福尼亚,纽约
- PurchaseLimitDays:15
问题:
通过上述结构,我们可以对客户表进行查询,并找出哪些符合促销条件。
我想不通的是最好的方法:
- 查询加利福尼亚或纽约的客户(这是连接和另一个表的好用例吗?)
- 当客户登录以查看哪些免费项目对他不可用时,如果客户已经获得此免费赠品,我如何排除 Apple iPad?
换句话说:
-
假设 amazon.com 想向我展示我尚未购买的 DVD。查询的正确方法是什么?
-
首先获取以前购买的产品列表然后使用 NOT 子句查询的正确方法吗?
【问题讨论】:
-
至少提供您已经完成的工作,您提议的数据库设计或 ERD。
-
现在都在纸上。
-
那么请帮我们一个忙 - 扫描并发布这些。我们无法通过射击黑暗来帮助您。至少张贴骨架结构,去除琐碎的细节。