Django电商网站--购物车设计

1、购物车因为是高频刷新部分,同时对数据关系结构的要求并非很复杂,因此选取nosql作为存储工具;
2、前后端需要对接4个参数,分别是用户id,商品编码即sku_id,多少件商品count以及是否勾选 selected;
3、Redis有5种数据类型,分别为string、list、hash、set、zset。而本次的4个参数,数量超过了单一种数据结构的控制范围,因此选用2个数据结构进行共同维护;
4、用户id,skuid以及count采用hash结构,即:
cart_user_id:{sku_id1:count,sku_id2:count,sku_id3:count....}
5、用户id和选中的商品使用set维护,因为购物车不要求先后顺序,且set结构可自动去重,
select_user_id:[sku_id1,sku_id3.....]
6、后期维护购物车数据时,2个表同时进行,例如删掉hash里面sku_id1的时候,selected里面的也要同时删掉。
7、在hash中每次添加商品时,先遍历购物车中的商品是否已有,如果已有,则累加count,如果没有再加新的。使用hincrby函数

你可能感兴趣的:(Django电商网站--购物车设计)