選好一個商品,點擊加入購物車的時候,你要把商品的id和用戶的id放入購物車表里面,如果還有其他重要的標志性信息也可以放進去,這樣用戶就是退出商城,下次進入的時候,系統加載也可以去檢索購物車表信息,當用戶結算后,可以刪除購物車的這行數據,把訂單號價格以及其他數據放入其他表中,這樣就對於該用戶清空購物車了
這樣做有什么辦法減輕數據庫的壓力?
做數據拆分,商城這種數據量大的數據庫,可以按時間拆分,一個月建一張表
當用戶購買商品添加到購物車時沒有進行登陸,如果我們用session來保存用戶的數據那么我們就要考慮到這種情況,一旦用戶關閉瀏覽器那么之前所保存的數據就會丟失,因此采用cookie來保存數據。當用戶點擊結賬時,對用戶進行登陸驗證,然后判斷cookie是否存在購買商品的信息。如果存在,就將cookie中的數據保存到mysql中,然后清空cookie信息,最后結賬成功。
用戶添加商品到購物車的時候必須進行登陸驗證,然后才能將購買的商品直接保存在數據庫,但是你有沒有想過用戶添加到購物車的商品,他不一定購買,因此我們額外增加了維護成本,但好處是用戶能在何時何地都可以看到自己的購物信息。記住方式做任何電商網站,都要從用戶的角度考慮。
就是說你購物的時候你有可能不是本網站的會員,但你又想購買商品,那么我們會給你提供一個特殊的帳號(游客)具體實現思路如下:當用戶購買通過cookie保存,結賬的時候用戶又不想注冊,我們通過獲取他的手機號碼和地址,然后后台自動生成一個普通用戶,將數據保存在數據庫中並清除cookie。
訂單表
orders訂單表
字段名 數據類型 默認值 允許非空 自動遞增 備注
id int(11) NO 是 id
uid int(11) NO 會員id號
linkman varchar(32) NO 聯系人
address varchar(255) NO 地址
code char(6) NO 郵編
phone varchar(16) NO 電話
addtime int(11) NO 購買時間
total double(8,2) NO 總金額
status tinyint(4) NO 狀態0:新訂單1:已發貨2:已收貨3:無效訂單
detail訂單詳情表
字段名 數據類型 默認值 允許非空 自動遞增 備注
id int(11) NO 是 id
orderid int(11) NO 訂單id號
goodsid int(11) NO 商品id號
name varchar(32) NO 商品名稱
prince double(6,2) NO 單價
num int(11) NO 數量
訂單號唯一
uniqid()函數
