【发布时间】:2018-10-02 06:32:28
【问题描述】:
我正在努力解决我遇到的问题的数据库架构。
假设我拥有一家向不同公司销售月度服务(清洁)的企业。 但是,我会给公司每月可保存的“优惠券”,根据他们的用户数量,它们就像减少(5 美元)一样。
例子:
现在是 2018 年 4 月 XYZ 公司必须为我的企业每月的清洁服务支付 1.000 美元。 XYZ 有 5 名员工,因此他们将在 4 月份有 5 张优惠券。
但是,由于优惠券可以保存(为期 2 个月),XYZ 公司将不会使用仅 4 月的优惠券,也不会使用 3 月的优惠券(因为他们没有使用任何当月和 2 月的优惠券已经使用上)。
结果: 4 月发票上使用了 10 张优惠券(3 月 5 日,4 月 5 日): 支付总额 950 美元
我的事情是我想自动化这个。一键点击按钮,我的系统将不得不检查:
- 有多少用户
- 如果过去 2 个月有任何未使用的优惠券(如果存在,请先使用)
- 将优惠券应用于他们的发票。
我想先在数据库中设计这个,但我很挣扎:
这是我的设计
-
公司
- 公司编号
- 姓名
-
用户
- 用户 ID
- 公司ID
- 用户 ID
现在我正在为优惠券设计而苦苦挣扎,我该如何开发它以便我可以自动化我的问题。 我需要每月为每个公司保存优惠券。
我的想法是这样做:
- Company_Month_Coupon
- 公司ID
- Coupon_Count
- 月
我不确定我是否可以在一张桌子上执行此操作,并且我不确定以下问题:
- 如果我的程序用户决定取消发票,我的系统如何知道优惠券是从哪个月份来的?
在优惠券共享系统中建议采用什么设计?
任何解决此问题的建议将不胜感激。
【问题讨论】:
标签: sql database database-design