fyapy
@fyapy
Верстак + Laravel

Как хранить список зказанных товаров?

Вот допустим пользователь сделал заказ и в таблице "orders" есть
-ид заказа
-сумма заказа
-дата заказа
И т.д.

Вот был бы один товар то хранили бы его ид.
Но вот как поступить если в заказе несколько товаров? И что делать если одного товара заказали 2 шт или более? Как это правильно организовать?
  • Вопрос задан
  • 83 просмотра
Решения вопроса 2
Maksclub
@Maksclub
maksfedorov.ru
Создается таблица purchases (покупки) с полями:
  • order_id — несколько записей выбираеются по этому полю, и у вас будет актуальное количество и значения товаров
  • amount — количество товара в заказе
  • product_id — привязка к товару, например получить его фото, но оно не обязательное, тк из основной таблицы может исчезнуть товар (сняли, удалили, распродали, мало ли что...), потому нужо завести поля name, price, sku, offer (или variant) и прочее

Готовый пример (product_id пустой, тк нет товара, но в истории заказа всегда есть инфа):
5a91daa9ba0d0598154064.png
Ответ написан
@Azperin
Дилетант
Дак так и организовывай. Первое что пришло, таблицы:
orders: order_id, user_id, order_status, order_date
order_items: order_id, item_id, item_quantity (первичный ключ по ордер_ид + товар_ид)
Тоесть таблица ордер выступает просто как корзина, если статус заказа не равно например "оплачен", то юзер работает и дальше с этим ордером, может добавлять или удалять товар.
SELECT `users`.`user_id`,  `orders`.`order_id`,  `order_items`.`item_id`,  `order_items`.`item_quantity`
LEFT JOIN `orders` ON (`orders`. `user_id` = `users`.`user_id` AND `orders`.`order_status` = "Не оплачен" ) 
LEFT JOIN `order_items` ON (`order_items`.`order_id` = `orders`.`order_id`)
FROM `users` WHERE `users`= 5;

Ну и цены также можно либо джоином из отдельной таблицы по итем_ид брать, либо сразу в заказ записывать с учетом скидок, чтоб по 10 раз не пересчитывать.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы
Badoo Development Москва
от 140 000 до 180 000 руб.
Badoo Development Москва
от 180 000 до 250 000 руб.
от 90 000 до 150 000 руб.
16 авг. 2018, в 12:52
100000 руб./за проект
16 авг. 2018, в 12:43
3000 руб./за проект
16 авг. 2018, в 12:11
100 руб./за проект