存储购物车的临时数据

问题描述:

我正在为我的网站制作购物车。存储购物车的临时数据

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

我在我的具体情况下做的是将信息存储在CartOrder表中。状态是'正在等待'。当过程完成后,我在订单表中插入信息,并将CartOrder标记为完成(或删除它)。对我来说购物车订单是购买的意图,订单是购买本身。

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

优先事项。两者都是合理的。数据库使您能够分析将要购买的产品或者至少在您的客户感兴趣的方面排队,这些数据通常非常有效,因为您对产品表现出浓厚的兴趣,并且很多时候数据不会被删除,一个到期日期或至少一个会话ID作为表中的一个属性。

根据DB方法,如果您确实想要删除它,可以轻松清除,您可以在cron或其他计划作业中每日或每周运行以删除所有已过期的记录。

+0

谢谢,它非常有用 – sathish 2009-11-19 05:38:19

+0

在mysql中,查询可能看起来像“DELETE FROM cartdata WHERE created_date 2009-11-19 06:04:27

取决于你想要做什么。

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

数据库会话很好,因为没有超时涉及,它更可靠。

我会说如果你的价格标签是昂贵的,那么最好有一个数据库会话,因为用户通常花费更多的时间来思考当他花费> 10,000美元时。

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

从亚马逊获取提示,将数据存储在数据库中,并且永不删除它。

您从购物车中的物品获得多少价值?存放购物车内容需要多少费用?如果有人放弃购物车,并在一年后返回您的网站,他们可能仍然需要购物车中的物品。