重复行的折扣

时间:2015-09-16 08:16:48

标签: python mysql django

用户创建一个计划,在 N (五个)差异日期购买一些商品。

+--------------+---------+------------+
| plan_date_id | plan_id | ad_date    |
+--------------+---------+------------+
|            1 |       1 | 2015-09-13 |
|            2 |       1 | 2015-09-15 |
|            3 |       1 | 2015-09-17 |
|            4 |       1 | 2015-09-21 |
|            5 |       1 | 2015-09-24 |
+--------------+---------+------------+

周跨度:对于每个产品周,跨度将根据产品首次销售的日期+ 6到期日部分计算。

  

即,对于 product_ID 10 ,首次购买是在2015-09-13进行的,所以   本周跨度将是2015-09-13至2015-09-19(2015-09-13 + 6)。

产品的折扣逻辑: (一周内重复的总数 - 1)* 10%

但最高折扣可以是30%。

+---------------+--------------+-------------+
| plan_product_id | plan_date_id | product_id |
+-----------------+--------------+------------+
|               1 |            1 |         10 |
|               2 |            2 |       5715 |
|               3 |            2 |         10 |
|               4 |            3 |         10 |
|               5 |            3 |     128900 |
|               6 |            4 |         10 |
|               7 |            5 |         10 |
+-----------------+--------------+------------+

所以在我的例子中我想要折扣如下。

+---------------+--------------+-------------+------------+
| plan_product_id | plan_date_id | product_id |   discount |
+-----------------+--------------+------------+------------+
|               1 |            1 |         10 |         0% |
|               2 |            2 |       5715 |         0% |
|               3 |            2 |         10 |        10% |
|               4 |            3 |         10 |        20% |
|               5 |            3 |     128900 |         0% |
|               6 |            4 |         10 |         0% |
|               7 |            5 |         10 |         0% |
+-----------------+--------------+------------+------------+

请注意,plan_product_id 6和7

0%折扣

目前,我在python中进行折扣计算。 首先获取所有必需的记录。然后创建一个以product_id为键的dict, 在价值中,有另一个字典持有基准日期和一周内重复的时间。然后循环到所有记录。

最好的方法是什么?

是否可以仅使用MySQL或Django Orm进行此操作?

MySQL中的循环会提高性能吗?

0 个答案:

没有答案