登陆状态购物车数据结构
生活随笔
收集整理的這篇文章主要介紹了
登陆状态购物车数据结构
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
后臺購物車設計
當用戶登錄時,我們需要把購物車數據保存到后臺,可以選擇保存在數據庫。但是購物車是一個讀寫頻率很高的數據。因此我們這里選擇讀寫效率比較高的Redis作為購物車存儲。
Redis有5種不同數據結構,這里選擇哪一種比較合適呢?Map<String, List<String>>
-
首先不同用戶應該有獨立的購物車,因此購物車應該以用戶的作為key來存儲,Value是用戶的所有購物車信息。這樣看來基本的k-v結構就可以了。
-
但是,我們對購物車中的商品進行增、刪、改操作,基本都需要根據商品id進行判斷,為了方便后期處理,我們的購物車也應該是k-v結構,key是商品id,value才是這個商品的購物車信息。
綜上所述,我們的購物車結構是一個雙層Map:Map<String,Map<String,String>>
-
第一層Map,Key是用戶id
-
第二層Map,Key是購物車中商品id,值是購物車數據
實體類:
public class Cart {private Long userId;// 用戶idprivate Long skuId;// 商品idprivate String title;// 標題private String image;// 圖片private Long price;// 加入購物車時的價格private Integer num;// 購買數量private String ownSpec;// 商品規格參數public Long getUserId() {return userId;}public void setUserId(Long userId) {this.userId = userId;}public Long getSkuId() {return skuId;}public void setSkuId(Long skuId) {this.skuId = skuId;}public String getTitle() {return title;}public void setTitle(String title) {this.title = title;}public String getImage() {return image;}public void setImage(String image) {this.image = image;}public Long getPrice() {return price;}public void setPrice(Long price) {this.price = price;}public Integer getNum() {return num;}public void setNum(Integer num) {this.num = num;}public String getOwnSpec() {return ownSpec;}public void setOwnSpec(String ownSpec) {this.ownSpec = ownSpec;} }?
總結
以上是生活随笔為你收集整理的登陆状态购物车数据结构的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 添加拦截器解析用户信息
- 下一篇: 登陆状态下加入购物车