我正在为我遇到的一个问题而挣扎于一个数据库模式。
比方说,我拥有一家向不同公司销售月度服务(清洁)的公司。然而,我给公司每月节省的“优惠券”,相当于根据用户数量减少(5美元)。
示例:
2018年4月,XYZ公司不得不为我的公司每月清洁服务支付1.000美元。XYZ有5名员工,所以他们将有5张4月份的优惠券。
然而,由于优惠券可以保存(为期2个月),XYZ公司将不再使用四月的优惠券,而是使用三月的优惠券(因为他们没有使用当月的优惠券,二月的优惠券已经用完了)。
结果:四月份发票上使用10张优惠券(3月5号,4月5日):总共支付950美元。
我的问题是我想让这一切自动化。只要点击一下按钮,我的系统就必须检查:
我想先在数据库中设计这个,但我在挣扎:
这是我的设计
- CompanyID
- Name
- UserID
- CompanyID
- UserID
现在我在与优惠券的设计斗争,我如何开发它,以便我可以自动化我的问题。我将需要每个公司每月节省优惠券。
我的想法是这样做:
我不确定能否在一张桌子上完成这个任务,我也不太确定下面的问题是什么:
在优惠券分享系统中会提出什么设计建议?
任何解决这一问题的建议都将不胜感激。
发布于 2018-04-26 05:19:53
我同意你的想法,还有两个表:Invoices
和Invoices_UsedCoupons
Invoices
Invoices_UsedCoupons
Invoices
表的外键)Company_Month_Coupon
表中使用的优惠券)其原因是:
Company_Month_Coupon
表中),因为对于每个月,员工的数量可能会发生变化。这意味着,当员工数量发生变化时,您必须跟踪已发行的优惠券。Invoices
和Invoices_UsedCoupons
表,您可以轻松地计算实际使用的优惠券&剩余的优惠券。如果我的程序用户决定取消发票,我的系统如何知道优惠券是哪一个月来的?
所有信息都可以在Invoices
和Invoices_UsedCoupons
表中获得。如果您想在取消发票后收回优惠券,这也很容易做到。
发布于 2018-04-21 21:54:01
“我需要每月节省每家公司的优惠券。”
也许你可以做相反的事。在数据库中不存储可以使用的优惠券,而只存储实际使用的优惠券,例如在表"used_coupons“中。
这个想法是,优惠券是默认放弃的,所以储存它们是没有意义的。只需要保存使用过的优惠券。
在结账时,您需要了解公司中有多少用户,以及在过去两个月中节省了多少“使用过的优惠券”。
如果返回X优惠券,则需要从"used_coupons“表中删除最新的X优惠券。
https://stackoverflow.com/questions/49960302
复制相似问题