#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
Но при извлечении данных с ним связана стоимость соединения.