Как создать таблицу для истории заказов, когда промо-код применяется пользователем

#mysql #sql

#mysql #sql

Вопрос:

Я работаю над проектом, в котором пользователь будет заказывать продукты. Теперь в базе данных я создал orders таблицу с этими столбцами:

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

В этом проекте также будет система промо-кодов. Я хочу знать, что если пользователь применил какой-либо промо-код, то как я могу сохранить эти данные? Я имею в виду, как сохранить эти данные xyz promo code is applied by some user . Должен ли я добавить еще один столбец в таблицу сведений о заказе.Но в этом случае мне было интересно, что если мы будем предоставлять пользователям промо-код только на некоторое время, например, на 3 месяца, то всего на три месяца я должен добавить еще один столбец, который может привести к потере памяти.

Ответ №1:

 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 amp;amp; user_id if available inside the sub query and get the order_date and check like last 90 days.
 

Ответ №2:

Вы можете добавить таблицу сопоставления, например, вместо добавления нового столбца в таблицу заказов.

Таблица: столбцы order_promo_map: order_id promo_id

Но при извлечении данных с ним связана стоимость соединения.