-1

我目前正在为我公司的网站设计一个数据库。我想创建一个表来保存有关我们折扣的信息(逻辑),这样我就可以调用一个带有 discountID 的函数,我的 php 代码将计算新价格。我的问题是,每个折扣都有不同的逻辑。前任。10% off,$10 off,一送一,买三送五……

如何将其存储在数据库中,以便我的代码可以自行计算折扣?

4

3 回答 3

3

数据库不存储逻辑 - 仅存储数据。将其拆分为三个字段:

  • 折扣金额(整数)
  • 折扣类型(枚举;可能的值:“百分比”、“金额”)
  • 买一送N(整数;每买一件就免费获得的数量)

因此,对于一次折扣,您可以存储以下内容:

| 折扣金额 | 折扣类型 | 买一送一|
-------------------------------------------------- --------
| 10 | '百分比' | |

对于另一个,BOGOF 适用:

| 折扣金额 | 折扣类型 | 买一送N |
-------------------------------------------------- --------
| | | 1 |

然后由您的 PHP 来接收这些值并采取相应的行动。

于 2012-08-16T16:18:57.887 回答
1

您必须使用此类字段创建折扣表,例如:

  1. discount_id - 折扣的 ID
  2. percent - 折扣百分比(如果为 0 - 则为其他类型的折扣)
  3. amount - $ 折扣金额(如果为 0 - 则为其他类型的折扣)
  4. 物品 - 购买时的免费物品数量(一送 - 在您的示例中免费)
  5. buy_items - 条件,在什么情况下你给予折扣(如果 0 - 无条件)

或者,您可以为这些字段指定其他名称。根据价值观,你可能知道什么类型的折扣和什么条件给它。

于 2012-08-16T16:20:18.950 回答
1

这是我通常从多层方法开始的地方,因为它不仅用于计算,还可以用于在实际网站上显示。我将从两张桌子开始。

Promotion Table
| id | discount_type | qty_products | discount_amount | free_products |
-----------------------------------------------------------------------
|  1 | BOGO          |       2      |        0        |       1       |


Sales Promo
| id | promo_id | product_id | activation_date | expiration_date |
------------------------------------------------------------------
|  1 |     1    |     222    |   '2012-04-23'  |   '2012-05-12'  |

然后代码将查看它是否在日期范围内并应用折扣或 B1G1/B1G2。表格并不准确,但只是一个开始。

于 2012-08-16T16:26:31.703 回答