我正在尝试创建一个类似于 groupon 的系统,但商家将优惠券代码输入到系统中,客户可以使用该系统来获取他们的产品。
假设商家 1 有以下产品
- 产品名称:相机
- 产品编号:2
他会将产品 ID 2 的优惠券代码添加到系统中。
优惠券通过以下字段添加到 COUPON 表中:
- ID
- 代码
- product_id(参考产品表
- num_available
- 最大限度
max 是可以发出的优惠券的最大值。num_available 是可用优惠券的数量。因此,如果商家输入 5 作为最大值,则 num_available 开始时为 5。但每当客户获得该优惠券时,num_available 就会减少 1
然后,当客户订购时,他们会获得一张优惠券
用户订单被添加到下表订单:订单:
- order_id
- 用户身份
订单位置:
- ID
- order_id
- product_id
- 数量
- 优惠券_id
每个订单(存储在 Orders 中)都有多个与之关联的产品(存储在 OrderPosition 中)。
因此,用户 1 订购了产品 2,并获得了为产品 2 添加的优惠券 ID 1。优惠券 ID 1(在优惠券表中)的 num_available 在数据库中减少了 1。
但是如果用户 1 订购了两个产品 2——一个给她,一个给她的朋友——她会得到两个不同的优惠券代码吗?
基本上,我想让他的流程更有效率,我不知道 Groupon 是如何设计这个流程的,但是如果有人对如何最好地做到这一点有好的想法,请告诉我!
我很想知道是否应该更改数据库架构以提高效率...
我的最终目标是让人们购买交易。一旦他们购买交易,他们就会获得优惠券。我本可以自动生成该优惠券,但我猜有些商家想输入他们自己的优惠券,这些优惠券可以在他们自己的系统上运行,对吧?
问题是 - 我应该如何设计系统以实现上述目标?
我还要强调的是,将在我的网站上列出的产品将来自不同的商家。我不会列出我自己的产品。商家列出自己的产品,就像在 Groupon.com 上一样。
生成优惠券代码而不是让商家输入他们的代码是否可行?这是否意味着他们也必须在自己的系统上支持这些代码?就像如果 jcpenny.com 在我的网站上输入产品,我可以为这些产品生成优惠券代码,但是如果 jcpenny.com 不支持这些优惠券代码怎么办?我猜商家会想输入他们自己的代码......或者我错了?