標籤:_id 重要 資料庫 思路 直接 over watch format lis
眾所周知購物車很麻煩(反正我不愛寫)....但是又很重要
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啊爐石啊 哥們關係好 很多人在玩很正常。
你一個購物軟體不會共用了吧? 當然你要非說一個軟體登入兩個帳號
最多你在給他個選項是否要合并購物車
當然這隻是基本設計 真正實現起來又要肝出一片天了
python web 購物車思路簡潔版