1 购物车分类
登录购物车/在线购物车
登录之后将临时的数据全部合并,临时购物车被清空。
游客购物车,离线购物车
浏览器即使关闭,下次进入,临时购物车数据还在。
2 需要实现的功能
查询自己的购物车
给购物车添加商品
清理购物车....
3 数据库,数据结构选择及理由
1 关系型数据库为什么不
登录状态下,优先使用mysql,购物车是一个读写都是高并发操作。
2 redis牛掰
存储很多条购物项,mongodb,或者放到redis,nosql
redis:数据结构好组织,性能高。
redis指定持久化策略,即使宕机,也可以恢复,损失性能,还是比mysql高效。
临时购物车,数据存放在localStorage.
3 数据和结构和理由
skuid,每一个购物项是否被保存。
商品被购买的数量,属性组合,购物车是一个数组。
key:每一个用户都有对应的购物车。cart:1
type:list
value:{} json
list缺点,修改一个东西,的数量,
为了快速修改购物项,变成一个hash
hash,找商品很快,一个id就是一个key,对应一个商品
Map<String k1,Map<String k2,CartItemInfo>>
k1,标识每一个用户的购物车。
k2,购物项的商品id。