Организация таблиц "корзина" и "заказы"

regii

Новичок
Организация таблиц "корзина" и "заказы"

Есть таблица basket (id, sessid, product_id, quantity)
В ней хранится текущая корзина посетителя, выборка по sessid=session_id().
Необходимо реализовать оформление заказа так, чтобы администратор на отдельной странице мог видеть текущие заказы(это не суть важно). Вопрос - создавать ли отдельную таблицу orders, в которую переносить содержимое корзины? Если создавать, то группировать товары, как я понимаю, выгоднее созданием еще одной таблицы.
orders(id, add_date) - хранить ид заказа и дату заказа
order_basket(id, product_id, order_id) - хранить информацию о продукте а так же ид заказа.
Мне интуитивно хочется вынести заказанные товары из таблицы basket в order_basket. Стоит ли это делать? Или просто ввести в таблицу basket поле order_id и создать таблицу orders?
 

nimistar

Новичок
На мой взгляд стоит все оставить несвязанным (баскет и ордер)
не все что баскет ордер и наоборот :)

но вот в ордере сопровождать заказ лучше уже не по сессии, а по айди пользователя (если подобная система предусмотренна), баскет тоже стоит завести ПЛЮС ещё и на пользователя.... типа поддержка корзины сквозь оффлайн
(это если потдержка пользователей предусмотренна)
если нет то выкень лишнее из моего поста :)
 

amadeus

Новичок
По сути вопроса: выносить ли записи по заказанным товарам из корзины, я бы вынес, просто чтобы чётко отделить реально заказанное, к которому нужно относиться бережно, от временного "мусора", которым полна корзина. Хотя можно и в одной таблице оставить, используя order_id для отличия заказанного от предполагаемого.
 

becool

Новичок
Полюбому в заказе будет то, что лежит в корзине (если нет, то его туда нужно положить)
Поэтому достаточно будет добавить этакий триггер в backet по дате заказа, если не проставленно либо ноль, значит не заказывали, если дата нормальная значит заказали.

Не совсем понятно как реализован механизм заказа но из описанного складывается впечатление что Mysql тут совсем не нужен, можно всё сделать на сессиях. Записывать id и статус товара (заказано или нет).
Далее если очень хочется можно всю сессию сохранять в mysql и не плодить на каждый продукт по записи в базе.
 
Сверху