Правильная структура таблицы заказов интернет-магазина?
Всем привет! Глядя на исходники CMS интернет магазинов, все построены по такому принципу, что данные из таблицы корзины пользователя дублируются в соответствующий заказ при его оформлении. В моём понимании правильнее просто добавить в заказе внешний ключ на корзину. Или это плохая практика, что думаете?
С одной стороны всё правильно, достаточно по ключу. Но что будет, например, если у товара изменилась цена в промежуток времени между заказом, и его обработкой? Бегай потом юзеру доказывай, что он сам верблюд…
Moses Fender, цена добавленного товара в корзину фиксируется в соответствующем поле БД. Ведь цена может изменится и в промежутке времени между добавлением товара в корзину и оформлением заказа. Можно на сайте в корзине оставить пометку *цены актуальны в течении суток, по истечении этого времени проверять и обновлять.
gpm7315, Цена точно так же может хранится в тех же Cookie. Корзина временное явление для каждого клиента и хранить информацию о ней в базе абсолютно бессмысленная и бесперспективная идея. Я работал с десятком CMS для ИМ и ни в одной из них не было такой реализации, которую вы описываете.
Эта практика направлена на избежание ошибок.
Если вы обратили внимание, то там фиксируется и цена на момент продажи и скидки примененные к товару и бонусные данные, и даже править во многих случаях нельзя из интерфейса.