php - 非注册用户的购物车

标签 php session shopping-cart

我正在制作一个包含购物车的网站。 有两个主要要求:

  1. 用户体验人员希望登录/身份验证成为整个工作流程的最后一步。用户可以进行所有购物,并且仅在结帐时被要求登录。

  2. 除非用户(无论是否注册)结帐,否则购物车不应过期(即使在浏览器关闭时也不应过期)。

在上述情况下,关于维护购物车的状态,我有以下问题:

我应该使用基于文件的 session 还是数据库 session ?请记住,这适用于未注册的用户。我担心我最终会在数据库中有很多记录。

另一种选择似乎是将购物车内容放入加密的 cookie 中,但是 cookie 文件的大小有限制。

在这种情况下你会怎么做?我真的很感激你的回答。

最佳答案

  1. 跟踪用户。使用 GUID 用一个编码成一个cookie n年到期。

  2. 存放购物袋。您不想将袋子存储在 cookie 中,主要是因为它可能的大小。这留下了将其保存到介质并从介质中检索它的选项。使用数据库以外的任何东西就像回到过去一样,数据库擅长存储和检索数据。

  3. 管理您的购物袋。现在 你的模式问题,首先,如果 您将要运行的查询 对着购物袋 数据库(即有多少购物 袋子里有 x) 你可能 想要一个传统的关系 模式。然而,这有开销 在插入方面。更新, 选择(和加入)和删除 行李数据(在某些时候你会有 永远不会再使用的袋子 但正在占用宝贵的磁盘 空间)。对于一个繁忙的站点,这是一个 每秒相当少的交易, 但任何数据库都应该能够 应付。如果不需要查询 数据库中的购物袋, 然后您可以将其存储为 XML。只是 序列化包并将其转储到 表,以 PK 作为 GUID 作为 存储在用户 cookie 中。这个 会比一个快很多 传统模式,再加上你可以 始终撕开 XML 将来如果确实有需求 用于关系模式。

这就是我们所做的 (Xml Bag),我们拥有超过一百万的客户群。

关于php - 非注册用户的购物车,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1376333/

相关文章:

php - Codeigniter MySQL 查询

php - 通过 sftp 使用 curl 下载文件

node.js - 将 Angular 和 Node Express CSRF 与 Redis session 一起使用,如何在 session 过期后重置 session 信息和 CSRF?

php - 如何从 Controller 加载 magento View (.phtml) 文件

php - 如何显示电子商务购物 list 中商品的总值(value)

php - AvalancheImagineBundle 创建简单的拇指不起作用

php - Zend OPCache - opcache.enable_cli 1 还是 0?它有什么作用?

laravel - 在 Laravel 5.7 中找出当前 session 到期前的时间?

php - Laravel Auth::logout 不删除记住我的 cookie

php - 在 Magento 中获取基础产品图片