aierong [оригинальная работа]
Впервые я создал корзину покупок для сайта BToC. Я обобщил метод хранения данных в корзине покупок.
Метод 1: использование сеанса.
В сеансе могут храниться данные любого типа. Каждый пользователь имеет уникальный идентификатор сеанса. Этот идентификатор используется для различения данных сеанса корзины покупок разных пользователей. Данные сеанса сохраняются в памяти веб-сервера. многие пользователи используют корзину покупок, то во-первых, это будет занимать большой объем ресурсов сервера. У сеанса есть небольшой недостаток. Он использует COOKIE для связи с пользователем. Как только пользователь закроет COOKIE, использование сеанса будет больше. хлопотно,
конечно, в ASP. Есть два других способа сохранить данные сеанса в NET. Один из них — назначить другой сервер для хранения данных сеанса, который может эффективно разделить операционные издержки WEB-сервера.
Другой способ — хранить данные сеанса в MS SQL. MS SQL реализуется с использованием локальных временных таблиц. MS SQL также присваивает уникальный идентификатор каждой локальной временной таблице
. этот идентификатор позволяет различать разные данные сеанса разных пользователей. Однако я не рекомендую этот метод. Частое создание и удаление временных таблиц в базе данных приведет к слишком большим нагрузкам в базе данных.
Способ 2. Использование таблицы (ShoppingCart) в базе данных.
Мой любимый метод реализации —
таблица с несколькими базовыми полями.
CartId Идентификатор корзины покупок (уникальный)
Идентификатор продукта (уникальный)
Количество товаров, купленных пользователями Qty
CreateDate Время создания корзины покупок.
Поле CartId этой таблицы — это идентификатор корзины покупок, который отличает разных пользователей. Если пользователь вошел в систему, вы можете сохранить идентификатор имени входа вошедшего в систему пользователя в таблице. Пользователь не вошел в систему и не использует корзину покупок,
вы можете указать. Он назначает GUID (глобальный уникальный идентификатор) в качестве идентификатора корзины покупок.
Этот метод также имеет некоторые недостатки. Во-первых, он приведет к появлению большого количества неверных данных. Как мы все знаем, люди, использующие корзину покупок, могут в конечном итоге не оформить заказ и не купить товар. Но чтобы воспользоваться корзиной покупок
, вам придется вставить соответствующие данные в таблицу (ShoppingCart). Как только не авторизованный пользователь покидает сайт, его данные в таблице становятся кучей ненужных данных, потому что когда он входит в систему. в следующий раз мы назначим
ему новый идентификатор корзины покупок CartId. Если есть данные об отходах, нам придется время от времени поддерживать эту таблицу. Мы можем написать процесс для очистки данных об отходах (используя поля CreateDate и CartId для определения). недопустимые данные). Вы также можете вызвать его вручную. Если вы хотите сделать это, если MS SQL запускается от нашего имени, можно настроить задание, и задание автоматически вызовет процесс для очистки ненужных данных.
Говоря о недостатках вытягивания, следует поговорить и о преимуществах этого метода.
1. Это требует меньше системных ресурсов. Мы можем разместить базу данных на одном компьютере, а веб-сервер - на другом, чтобы можно было полностью использовать системные ресурсы.
2. Данные в корзине могут быть эффективно сохранены. Мы можем представить, что покупатель внезапно покидает торговую станцию по какой-либо другой причине (сбой и т. д.) во время покупок. Его данные в корзине эффективно
сохраняются
, когда он входит в систему в следующий раз. время корзина покупок будет сохранена.Также сохраняются данные последнего времени, чтобы пользователи не могли снова покупать товары (эта функция действительна только для корзин покупок вошедших в систему пользователей, если для реализации
корзины покупок
используется сеанс)., как только все пользователи покинут сайт, все данные в их корзинах покупок будут потеряны. Ошибка
проста, я только что обобщил их, потому что только что познакомился с ASP. NET, я мало что знаю о многих аспектах. Могут быть и другие способы реализации корзины покупок. Надеюсь, вы дадите мне несколько советов. Спасибо всем.