用户应用促销代码时如何设计订单历史记录表

时间:2019-04-19 10:51:50

标签: mysql sql

我正在一个项目中,用户将在其中订购产品。现在在数据库中,我用以下列创建了一个orders表:

orderId, phone, address, total, subtotal, orderstatus, userid

在这个项目中,还将有促销代码系统。我想知道,如果用户应用了一些促销代码,那么我该如何存储这些数据?我的意思是如何保存xyz promo code is applied by some user的数据。我是否应该在订单明细表中添加另一列。但是在这种情况下,我想知道如果我们仅在一段时间内(例如3个月)为用户提供促销代码,那么我是否应该在3个月内添加另一列,这会导致内存浪费

2 个答案:

答案 0 :(得分:0)

you can add one more field in order table  <order_date> old data is a necessary for past order which promo code used in past no memory wastage.
order_detail_promocode
---------------------- 
order table like one order
----------------------
orderId = 111
phone   = 989898
address = testing
total   = 2000
subtotal = 2020
orderstatus = 1
userid = 123
order_date = 2019-04-19  (this new column use for users promo code only for some duration like for 3 months you can check current date.)

order_detail_promocode  (which users used prome code)
userid = 123
promo_code = xyz
order_id = 111
------------------
when user new order for xyz promo code check
promo_code && user_id if available inside the sub query and get the order_date and check like last 90 days.

答案 1 :(得分:0)

您可以像添加映射表一样在订单表中添加新列。

表:order_promo_map 列:order_id          promo_id

但是,每当您检索数据时,都存在与之相关的加入费用。