我目前正在为我公司的网站设计一个数据库。我想创建一个表来保存有关我们折扣的信息(逻辑),这样我就可以调用一个带有 discountID 的函数,我的 php 代码将计算新价格。我的问题是,每个折扣都有不同的逻辑。前任。10% off,$10 off,一送一,买三送五……
如何将其存储在数据库中,以便我的代码可以自行计算折扣?
数据库不存储逻辑 - 仅存储数据。将其拆分为三个字段:
因此,对于一次折扣,您可以存储以下内容:
| 折扣金额 | 折扣类型 | 买一送一| -------------------------------------------------- -------- | 10 | '百分比' | |
对于另一个,BOGOF 适用:
| 折扣金额 | 折扣类型 | 买一送N | -------------------------------------------------- -------- | | | 1 |
然后由您的 PHP 来接收这些值并采取相应的行动。
您必须使用此类字段创建折扣表,例如:
或者,您可以为这些字段指定其他名称。根据价值观,你可能知道什么类型的折扣和什么条件给它。
这是我通常从多层方法开始的地方,因为它不仅用于计算,还可以用于在实际网站上显示。我将从两张桌子开始。
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。表格并不准确,但只是一个开始。