Сохранение элементов корзины покупок в файлах cookie и базе данных

Я работаю над сайтом электронной коммерции. Когда пользователь не зашел на мой сайт и нажимает кнопку «Купить сейчас», я хочу сохранить эту информацию в файле cookie, а также в базе данных. Таблица для корзины покупок выглядит так:

SHOPPING_CART ( sessionid int(10), itemid int(10), quantity tinyint(10) unsigned date_added datetime ); 

Первичный ключ: (sessionid, itemid)

Когда пользователь закрывает браузер, необходимо также сохранить элементы корзины покупок. Теперь мой вопрос следующий:

  1. Когда пользователь не регистрируется на моем веб-сайте, на каком основании я должен идентифицировать пользователя?
  2. Должен ли я хранить информацию с помощью IP address ? Если да, то КАК? В этом случае sessionid в вышеупомянутой таблице будет IP-адресом пользователя. Правильно?
  3. Должен ли я создать временный сеанс для каждого пользователя, который посещает мой сайт, а затем сохраняет информацию? Если да, то КАК?
  4. Как сохранить элементы корзины покупок, даже если пользователь закрывает окно браузера? Должен ли я получить из базы данных или файла cookie?
  5. Любой другой лучший способ хранения и поиска информации?

Note1 : Я могу использовать множество программных папок / кодов / библиотек для покупок. Но я хочу знать: как идентифицировать пользователя? И хранение / извлечение данных.

Примечание2 : цена каждого товара, порядок, информация о доставке все хранятся в разных таблицах.

  1. Все, что вы можете сделать, это создать уникальную поддельную идентификацию для пользователя
  2. Нет. Несколько пользователей могут иметь один и тот же IP-адрес, и один пользователь может изменить свой IP-адрес
  3. Да. PHP создаст сеанс для вас, как только вы попросите начать сеанс. Вы должны связать личность с этим сеансом. Просто используйте случайное число или генератор UUID или что-то в этом роде, чтобы создать что-то уникальное и не просто угаданное. Затем сохраните идентификатор в файле cookie, чтобы, когда пользователь вернется через некоторое время, вы можете повторно связать свою личность с новым сеансом.
  4. Я бы просто сохранил личность в cookie. Файл cookie содержит только небольшой объем информации и может быть изменен пользователем без вашего ведома.
  5. Если пользователи не входят в систему, я не вижу другого способа.

единственное, что вам нужно сделать, – установить sessionid в client-cookie. если клиент возвращается и представляет файл cookie sessionid, вы обновляете свою корзину с помощью своего нового sessionid (и устанавливаете новый sessionid в cookie).

  1. сеанс (для чего он нужен)
  2. нет
  3. «временная сессия»?
  4. корзина в базе данных
  5. лучше в каком смысле? безопасности? надежный? удобный?