当我们编写购物车时,我们是否应该使用会话ID在数据库中保存购物车信息,还是应该只保存会话变量?为什么呢?
答案 0 :(得分:1)
如果用户无法保存他的购物车,会话ID就可以了,只要记住,如果他通过浏览器启动它就会改变。
如果您希望用户能够存储和检索购物车,则不能依赖会话ID。在这种情况下,您需要一个用户帐户,然后将购物车绑定到用户ID。
[编辑]
首先,是的,我认为你应该将购物车存放在数据库中。
只要客户没有用户帐户,识别他/她的唯一方法是通过会话ID或者如果您在客户端上写一个cookie来识别他/她。
但最终,根据您想要的可靠购物车的可靠性,您无法信任会话ID,因为如果客户重新启动浏览器,它可能会更改。编写cookie不可靠,因为客户可能已禁用cookie。会话变量当然在会话ID上待决。
如果您不是100%可靠的购物车,您需要让客户登录,以便您可以使用UserID而不是会话ID。
答案 1 :(得分:1)
实际上,这取决于你想用它做什么。
如果你想要一个登录用户可以在2天之后(或其他)获得他的购物车,你应该把它放在数据库中。但是您无法保存无登录用户购物车(或者只将其保存到跟踪项目)。因此,您必须每次检查用户是否记录。
优点是如果用户使用其他浏览器或计算机,他仍然会有购物车。
对于数据库,它不能改变任何东西,通常你会有一个历史记录(如果用户购买产品)所以你只有一个布尔值的字段历史记录,并且每个月都有一个清理历史记录的cron(如果你需要它。)
答案 2 :(得分:1)
就个人而言,在用户会话中存储购物车没有任何实际问题,但显然用户将在浏览器关闭后丢失其购物车的内容。所以,这取决于您是否认为您的客户将从拥有或不持久的购物车中受益。
将购物车存储在数据库中没有问题,我建议您这样做,因为您可以看到人们添加到购物车然后不购买的项目,这可能表明某些定价问题
所以简短的回答....将它添加到数据库中:)
答案 3 :(得分:0)
将其存储在数据库中。这并不难,它会给你最好的结果。此外,它还允许您跟踪人们放入篮子但不购买的物品。