折扣计算

时间:2012-08-16 16:12:05

标签: php discount

我正在为我公司的网站设计一个数据库。我想创建一个表,其中包含有关我们折扣的信息(逻辑),以便我可以使用discountID调用函数,我的PHP代码将计算新价格。我的问题是,每个折扣都有不同的逻辑。恩。 10折,10美元折扣,一送一,买3折50%......

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

3 个答案:

答案 0 :(得分:3)

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

  • 折扣金额(int)
  • 折扣类型(枚举;可能的值:'百分比','金额')
  • 买一送一N(int;你购买的每个人免费获得的数字)

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

| discount amount | discount type | buy one get one free |
----------------------------------------------------------
|       10        |   'percent'   |                      |

另一方面,BOGOF适用:

| discount amount | discount type | buy one get N free |
----------------------------------------------------------
|                 |               |         1          |

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

答案 1 :(得分:1)

您必须使用以下字段创建折扣表格,例如:

  1. discount_id - 折扣的ID
  2. 百分比 - 折扣百分比(如果为0 - 那么它是其他类型的折扣)
  3. 金额 - $的折扣金额(如果为0 - 那么它是其他的折扣 型)
  4. 项目 - 购物时的免费物品数量(一次免费赠送一次) 在你的例子中)
  5. buy_items - 条件,在什么情况下你给予折扣(如果0 - 没有条件)
  6. 或者您可以为这些字段指定其他名称。根据价值观,您可能知道什么类型的折扣以及给予它的条件。

答案 2 :(得分: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。表格不是确切的,而是一个开始。