【问题标题】:storing temp data for a shopping cart存储购物车的临时数据
【发布时间】:2009-11-19 05:29:51
【问题描述】:

我正在为我的网站制作购物车。

哪种解决方案更好,将数据存储在会话中还是将数据存储在表中?如果我将它存储在表中,我将如何以及何时删除表中的记录(即当不是用户购买但在表中时)

【问题讨论】:

    标签: php mysql shopping-cart


    【解决方案1】:

    在我的具体情况下,我所做的是将信息存储在 CartOrder 表中。状态为'待定'。当该过程完成后,我将信息插入 Order 表并将 CartOrder 标记为已完成(或将其删除)。对我来说,CartOrder 是购买意图,Order 是购买本身。

    如果您不删除 CartOrder 也没关系,您可以稍后使用它(看看亚马逊或其他网站如何维护您最后一个可用的购物车,即使您没有完成购买)。这也可以很好地跟踪有多少用户进入网站、环顾四周、启动购物车但没有完成购买。用户喜欢这个。

    【讨论】:

      【解决方案2】:

      偏好问题。两者都是合理的。 DB 使您能够分析将要购买的东西或至少在对客户的兴趣方面排队,这些数据通常非常有效,因为它标志着对您的产品的浓厚兴趣,而且很多时候数据不会被删除,只是有过期日期或至少一个会话 ID 作为表中的属性。

      根据 DB 方法,如果您确实要删除它是一个简单的清除方法,您可以每天或每周在 cron 或其他计划作业中运行以删除所有有效过期的记录。

      【讨论】:

      • 在 mysql 中,查询可能类似于“DELETE FROM cartdata WHERE created_date
      【解决方案3】:

      取决于你想做什么。

      常用解决方案使用$_SESSION,此解决方案易于实施,不会影响您网站的性能。

      数据库会话很好,因为它不涉及超时并且更可靠。

      我会说,如果您的价格标签有点贵,最好有一个 DB 会话,因为当用户花费 > 10,000 美元时,通常会花更多时间思考。

      对于普通产品,SESSION 解决方案很好。

      【讨论】:

        【解决方案4】:

        从亚马逊那里得到提示,将数据存储在数据库中并且永远不要删除它。

        您从购物车中的商品中获得了多少价值?存储购物车的内容需要多少钱?如果有人放弃了购物车,一年后又回到您的网站,他们可能仍然想要购物车中的商品。

        【讨论】:

          猜你喜欢
          • 2017-06-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-02-05
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-08-02
          相关资源
          最近更新 更多