Opencart中的购物车功能是用session还是 *** 作数据库的

Opencart中的购物车功能是用session还是 *** 作数据库的,第1张

用数据库存你得给数据库造成多大的负担啊, 而且对于购物车, 这种需要实时 *** 作的东西, 数据库的访问量一大了, 就容易出现并发错误, 或者直接崩溃.

不可否认用Session确实效率很高, 而且会话是针对各个连接的, 所以便于管理, 但是用Session也不是完美的, 因为Session是有有效期的, 根据服务器的设置不同而不一样长, 如果你在购物的过程中Session超时了, 那么购物车中的东西就会全没了.

不知道你看过当当网的购物车没有, 当你下线之后, 再次上线, 购物车中的东西还是存在的, 这对于用户来说非常方便.

所以如果你的服务器够强的话, 你完全可以用一个静态变量来保存所有用户的购物车, 比如用一个静态的Map, 以IP作为Key,区分不同用户的购物车, 这样就可以使用户在下线的情况下也可以保存购物车中的内容.

这种方法实现过, 只是没有用大量的并发访问测试其稳定性, 但是一定是可行的.

新建个表把 某用户/时间/商品/ 这些信息添加到这个数据表里就行

用户选择了要购买的商品并添加到购物车就把以上信息添加到这个表里

当用户打开自己的购物车时,从这个表里再读出这些信息。供用户 *** 作。

当用户购买里车里的商品后,就删除车里该商品的购物车信息

看你这个数据库字段名,应该是打一个用户一次产生的订单全部放在这一条记录里了,所以有total字段,那么就需要存用户买的商品的id(或与sku匹配的相关id),和购买商品的数量。我觉得可以组合成类似这样的字符串存进去:

1,1;2,1;3,2

其中分号分隔的不同商品,逗号分隔的是一个商品的商品id和购买数量


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9984488.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存