Должен ли я иметь таблицу корзины в приложении электронной коммерции или просто иметь статус открытого заказа? - PullRequest
0 голосов
/ 10 февраля 2020

Я работаю над приложением электронной коммерции, и при разработке схемы базы данных я наткнулся на два вопроса о хранении данных корзины.

Во-первых, есть ли причина иметь и корзину, и таблица cart_line? Я понимаю, почему это делается с такими вещами, как заказы. Очевидно, что он предотвращает дублирование данных в нескольких строках заказа (номер заказа, дата заказа, пользователь / учетная запись, статус и т. Д. c.), Заменяя его вместо одного внешнего ключа orderID.

Но только такие данные, которые будут распределены между строками корзины (которые я предвижу), будут пользовательскими. Таким образом, вместо сохранения ссылки на cartID в строке корзины, почему бы просто не сохранить userID и полностью исключить таблицу cart?

Пропускаю ли я еще одно преимущество наличия выделенной таблицы корзины?

А потом, во-вторых, обдумывание этого вопроса заставило меня задуматься, нужен ли мне даже таблица строк корзины. Если у заказов есть статус, почему бы просто не иметь статус «открыт» и использовать открытые ордера для пользовательских тележек?

Я понимаю, что это будет означать поиск в (большей) таблице order_lines вместо таблицы cart_lines для получения корзина пользователя. Мне просто интересно, какая разница, что на самом деле будет иметь значение. И если это, возможно, нормальная практика - использовать таблицу заказов для хранения данных корзины.

Буду очень признателен за любые отзывы или обсуждения. :)

1 Ответ

1 голос
/ 10 февраля 2020

Обычная причина для этого - позволить одному пользователю иметь «более одной корзины». Иногда пользователю необходимо «припарковать» незаконченный заказ и разместить другой, прежде чем вернуться к незаконченному заказу, чтобы завершить или отказаться от него.

Итак, между пользователями и тележками существует отношение один-ко-многим, и отношение «один ко многим» между корзиной и содержащимися в ней товарами.

Теперь ... Я также настоятельно рекомендую вам потратить время на просмотр существующих фреймворки электронной коммерции на выбранном вами языке. Не излишне изобретать велосипед.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...