购物车如何设计

购物车存储时需要考虑清楚的问题

  • 1.用户没登录,在浏览器中加购,关闭浏览器再打开,刚才回购的商品还在吗?(存在)
  • 2.用户没登录,在浏览器中回购,然后登录,刚才回购的商品还在不在?(存在)
  • 3.关闭浏览器再打开,上一步回购的商品还在不在?(不存在)
  • 4.再打开手机,用相同的用户登录 ,第二步回购的商品还在不在?(存在)

暂存购物车用户购物车

购物车设计原则

  • 如果未登录,需要临时暂存购物车的商品;
  • 用户登录时,把暂存购物车的商品合并到用户购物车中,并且清除暂存购物车;
  • 用户登陆后,购物车中的商品,需要在浏览器、手机 APP 和微信等等这些终端中都保持同步。

暂存购物车设计

一般的设计都会将这批数据存储在客户端,采用Session、Cookie、LocalStorge,APP的本地存储原理也是类似

  • Session的缺陷:保留时间短
  • Cookie:每次交互都需要把数据给带上,存储上限4K
  • LocalStorage:只能由客户端来访问,

用户购物车设计

使用关系型数据库来存储购物车数据,如果追求性能或者高开发,也可以选择Redis