在PHP的Groupon优惠券代码系统


Groupon coupon code system in PHP

我正在尝试创建一个系统,就像groupon一样,但商家输入代金券代码到系统中,客户可以使用该系统获得他们的产品。

假设商家1有以下产品

  • 产品名称:相机
  • 产品编号:2

他会将产品ID 2的优惠券代码添加到系统中。

使用以下字段将优惠券添加到COUPON表中:

  • id
  • product_id(引用回产品表
  • num_available
  • max

max是可以发放的优惠券的最大值。Num_available是可用优惠券的数量。所以如果一个商人投入5作为最大值,那么num_available开始为5。但只要给顾客分配优惠券,num_available就会减少1

当顾客下单时,他们会得到一张优惠券

用户订单被添加到以下表orders:订单:

  • order_id
  • user_id

OrderPosition:

  • id
  • order_id
  • product_id
  • coupon_id

每个订单(存储在Orders中)都有多个与之相关的产品(存储在OrderPosition中)。

因此用户1订购产品2并获得为产品2添加的优惠券ID 1。在数据库中,优惠券ID为1的num_available(在优惠券表中)减少1。

但是如果用户1订购了两个产品2s——一个给她,一个给她的朋友——她会得到两个不同的优惠券代码吗?

基本上,我想让他的流程更有效率,我不知道Groupon是如何设计这个流程的,但如果有人有什么好主意,请告诉我!

我想知道我是否应该改变数据库模式以使其更有效…

我的最终目标是让人们购买交易。一旦他们买了一笔交易,他们就会得到一张优惠券。我可以自动生成优惠券,但我猜一些商家想要输入他们自己的优惠券,在他们自己的系统上工作,对吗?

问题是——我应该如何设计系统来实现我上面描述的目标?

我还想强调,将在我的网站上列出的产品将来自不同的商家。我不会列出自己的产品。商家就像在Groupon.com上一样列出自己的产品。

是否可以生成优惠券代码,而不是让商家输入他们的代码?这是否意味着他们也必须在自己的系统上支持这些代码?例如,如果jcpenny.com在我的网站上输入产品,我可以为这些产品生成优惠券代码,但如果jcpenny.com不支持这些优惠券代码怎么办?我猜商家会想要输入他们自己的代码…或许我错了?

我建议为每个请求生成优惠券代码。如果有人订购2个,生成2个代码。

如果有人为朋友购买,或者同一用户多次购买,这就容易多了。实际上,我在自己编写的系统中遇到了同样的情况,而它最终成为了我的情况下最方便的解决方案。

当然,这是一个意见问题……