購物網站一般都會用到購物車,使用中要滿足的功能有:
1、用戶不需要登錄即可使用購物車,在沒登錄前操作的數據在下次登錄本台機器上是有效的。
同一IP出口的多台機器,要維護各自的購物車。比如網吧,公司內網同一IP出口等情況。
解決辦法:
在用戶的cookie中存入不可重復碼,如UUID或128位短碼等,用於定位某一台機器。
當用戶訪問時,如果沒有該唯一碼,就存一個到cookie 。
這個可以在web容器端做,如 apache,nginx(推薦),也可以在tomcat端做。
服務端收到這個碼后,就可從分布式緩存中取得購物車對象。
2、用戶登錄后要將購物車定位到該用戶,當用戶登錄另外一台電腦時可以得到購物車。
解決方法:
當用戶登錄時,可能有兩個購物車。一個是登錄之前在本機操作的購物車,以UUID為key的,
一個是另外一台或本機之前登錄並存入緩存的,以會員id為key的,
這時一般會把兩個購物車合並,放入以會員id為key的購物車,同時清除UUID為key的購物車。
附:
1.給“購物車”一個不重復的編號,“購物車”中可存放多個“訂單”,一個“訂單”中存放多個“物品”;
2.“購物車”(編號)一定程度上表示同一個客戶,這次用完了,下次可以繼續用,當然,前提是客戶端的“購物車的Cookie值”還存在;
3.后台數據庫中保存了“購物車”所有的訂單狀態,若“購物車”中有“沒有支付的訂單”,則下次購物時,會把所選商品放到這個“訂單”中,實現“訂單合並”。