Я работаю над приложением электронной коммерции, и при разработке схемы базы данных я наткнулся на два вопроса о хранении данных корзины.
Во-первых, есть ли причина иметь и корзину, и таблица cart_line? Я понимаю, почему это делается с такими вещами, как заказы. Очевидно, что он предотвращает дублирование данных в нескольких строках заказа (номер заказа, дата заказа, пользователь / учетная запись, статус и т. Д. c.), Заменяя его вместо одного внешнего ключа orderID.
Но только такие данные, которые будут распределены между строками корзины (которые я предвижу), будут пользовательскими. Таким образом, вместо сохранения ссылки на cartID в строке корзины, почему бы просто не сохранить userID и полностью исключить таблицу cart?
Пропускаю ли я еще одно преимущество наличия выделенной таблицы корзины?
А потом, во-вторых, обдумывание этого вопроса заставило меня задуматься, нужен ли мне даже таблица строк корзины. Если у заказов есть статус, почему бы просто не иметь статус «открыт» и использовать открытые ордера для пользовательских тележек?
Я понимаю, что это будет означать поиск в (большей) таблице order_lines вместо таблицы cart_lines для получения корзина пользователя. Мне просто интересно, какая разница, что на самом деле будет иметь значение. И если это, возможно, нормальная практика - использовать таблицу заказов для хранения данных корзины.
Буду очень признателен за любые отзывы или обсуждения. :)