A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

胡子龙

初级黑马

  • 黑马币:0

  • 帖子:4

  • 精华:0

© 胡子龙 初级黑马   /  2013-1-9 08:40  /  1737 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

购物车是用cookie、session、还是数据库好

评分

参与人数 1技术分 +1 收起 理由
潘梦军 + 1

查看全部评分

3 个回复

正序浏览
就像在搜狗这类的浏览器中注册了账号,然后保存自己的收藏夹,以后可以随时随地的修改?
回复 使用道具 举报
你可以借鉴一下,亚马逊对于购物车采用的是Cookie+数据库的这种方式,并且十分灵活:

在A机子a浏览器中,在用户未登录时加入购物车,这条数据将被存入a浏览器的cookie。此时,当用户在A机子a浏览器中登录,这条数据就将被存入数据库中,对应此用户。如果这个用户退出账户,之后,cookie中的数据还会存在,当用另一用户登录时,这条数据又将被存入数据库中,对应这另一用户。

在A机子a浏览器中,在用户登录成功时加入购物车,这条数据将直接存入数据库中,不再存入cookie。当此用户退出时,cookie并没有这条数据。

下面的情况只是cookie存在的方式产生的结果:
当用户在A机子b浏览器中登录时,用户可以看到被存入数据库中数据,但是本地购物车中并不存在;
当用户在B机子a浏览器中登录时,用户可以看到被存入数据库中数据,但是本地购物车中也并不存在;

评分

参与人数 1技术分 +1 收起 理由
潘梦军 + 1

查看全部评分

回复 使用道具 举报
1.Cookie就是保存在浏览器上的内容,用户在这次浏览器页面的时候向Cookie中保存文本内容,下次再访问页面的时候就可以取出来上次保存的内容,这样就可以得到上次“记忆”的内容;
2.不要放太多的对象到Session, Session会有超时销毁的机制,用.NET实现购物车,Session保存未登陆用户购物信息;
3.Cookie是存在客户端,Session是存在服务器端,目的是一样:保存和当前客户端相关的数据,用.NET实现购物车Cookie一般很少用到.
4.保存sessionid的方式可以采用cookie,这样在交互过程中浏览器可以自动的按照规则把这个标识发送给服务器;
5.由于cookie可以被人为的禁止,必须有其它的机制以便在cookie被禁止时仍然能够把sessionid传递回服务器;
6.数据库能储存大量的购物车表格信息,方便人们查询和修改,在用.NET实现购物车时,可以直接存数据库,因为用户换了电脑/浏览器也可以在保存购物车里面的物品。

评分

参与人数 1技术分 +1 收起 理由
潘梦军 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马