众所周知购物车很麻烦(反正我不爱写)....但是又很重要

1 使用DRF框架

2 关系型数据库选择mysql

3 非关系型数据库选择redis

我们首先思考权限验证

非登录用户要可以存储购物车

登录用户也要可以存储购物车

用户还可以对购物车的增删改查(不论登录和非登录)

结算时要勾选需要结算的物品

用户登录时合并购物车

登录用户状态保持使用JWT&非登录用户使用cookie

如何区分说完了 、但是购物车储存信息放哪是个问题

众所周知关系型数据库的性能真的是烂到家了

关系型数据库每秒的访问次数1100多次&菲关系型数据库比如redis可以达到11W次之多

所以优化很重要 不然你程序跑起来之后如果访问次数很大 服务器很容易就崩溃 

>>>购物车 数据 >>redis

未登录用户购物车数据存放致cookie&登录用户直接扔到redis

技术方向 登录用户存储redis中需要储存两个 1 物品信息,就存一个sku_id 和count (因为结算要用嘛)存储类型>>哈希

如果想不到就一个一个去试试完就哈希最合适

xxxx{}.format(user_id) ={xxx:10,xxxxx:20}  哈希真的很合适做购物车

redis 里面还要存储一个 勾选功能

方便的是用set类型 因为自动去重

当然如果追求完美 list也可以 大不了你自己去重嘛 lrem 然后储存也要用lpush 还能升序

想想也很心动

当然在操作物品信息和勾选时候!!一定要一起操作!!!!!!!!!

未登录用户操作购物车

使用Json来存储 很方便!!!sku和是否勾选都可以放到一个字典里去

但是讲道理你需要加个密吧

base64 and pickle 俩标准模块

最后在说说合并购物车

有些人在这会很迷惑如何区分我是谁我在哪等等

其实很简单 你电脑里存有cookie 然后你登录了 然后用户和cookie不就合并了?

讲道理你打什么overwatch啊pubg啊炉石啊 哥们关系好 很多人在玩很正常。

你一个购物软件不会共享了吧? 当然你要非说一个软件登录两个账号

最多你在给他个选项是否要合并购物车

当然这只是基本设计 真正实现起来又要肝出一片天了

posted on 2018-08-05 10:41  王紫又  阅读(571)  评论(0编辑  收藏  举报