Собственно разрабатываю Интернет Магазин с нуля и задался вопросом где хранить оформленные товары? В отдельной таблице или в том же orders. Проблема ещё состоит в том, что у нас есть оплата при получении и предоплата на сайте Интернет Магазина(пока не включена, но планируется сперва через агрегатор платёжных систем). Оформленные товары лучше хранить в базе данных и сделать например так, что-бы пользователь мог повторить тот же заказ в будущем.
цена на момент оформления это полный не фонтан. В плане того, что товар может лежать в корзине долго. А при повторе заказа цена может вернутся также старая. Что повлечёт убытки и издержки.
Mikhail: цена на момент оформления - очень ползеная фишка, которая дает дополнительные данные для датамайнинга.
>В плане того, что товар может лежать в корзине долго
Корзину не нужно хранить в БД. Ее нужно хранить в сессии\localstorage. А вот данные о заказе (включая цену на момент заказа) хранить очень даже полезно.
Так же стоит сохранять всю дополнительную информацию по заказчику (IP, User Agent, часовой пояс, локальное время, и т.д), потом только спасибо себе скажете за это.
Сергей Маловичко: если юзер не зарегистрирован, то хранить корзину в БД всё равно не поможет. Для зареганых конечно можно хранить в redis/memcached, но в БД ей по моему не место.
А вот сохранять товары которые добавляют в корзину, с привязкой к конкретному юзеру + дополнительная информация - самое то. Для дальнейшего датамайнинга пригодится.
Сергей Маловичко: ну не только для этого. Подобные данные можно анализировать и анализоровать :) Например построить график по определенному товару, как часто его добавляли с другим конкретным товаром, в зависимости от цены + от часового пояса человека.
И затем людям с таким часовым поясом показывать эти 2 товара со скидкой например.
Да кучу всего можно накопать.