-5

我正在尝试创建一个类似于 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 不支持这些优惠券代码怎么办?我猜商家会想输入他们自己的代码......或者我错了?

4

1 回答 1

2

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

如果有人为朋友购买,或者同一用户多次购买,则更容易。我实际上在我编写的系统中有相同的案例,它最终成为我案例中最方便的解决方案。

当然,这是见仁见智的问题……

于 2011-10-30T15:20:16.463 回答