選好一個商品,點擊加入購物車的時候,你要把商品的id和用戶的id放入購物車表裏面,若是還有其餘重要的標誌性信息也能夠放進去,這樣用戶就是退出商城,下次進入的時候,系統加載也能夠去檢索購物車表信息,當用戶結算後,能夠刪除購物車的這行數據,把訂單號價格以及其餘數據放入其餘表中,這樣就對於該用戶清空購物車了mysql
這樣作有什麼辦法減輕數據庫的壓力?sql
作數據拆分,商城這種數據量大的數據庫,能夠按時間拆分,一個月建一張表數據庫
當用戶購買商品添加到購物車時沒有進行登錄,若是咱們用session來保存用戶的數據那麼咱們就要考慮到這種狀況,一旦用戶關閉瀏覽器那麼以前所保存的數據就會丟失,所以採用cookie來保存數據。當用戶點擊結帳時,對用戶進行登錄驗證,而後判斷cookie是否存在購買商品的信息。若是存在,就將cookie中的數據保存到mysql中,而後清空cookie信息,最後結帳成功。瀏覽器
用戶添加商品到購物車的時候必須進行登錄驗證,而後才能將購買的商品直接保存在數據庫,可是你有沒有想過用戶添加到購物車的商品,他不必定購買,所以咱們額外增長了維護成本,但好處是用戶能在什麼時候何地均可以看到本身的購物信息。記住方式作任何電商網站,都要從用戶的角度考慮。cookie
就是說你購物的時候你有可能不是本網站的會員,但你又想購買商品,那麼咱們會給你提供一個特殊的賬號(遊客)具體實現思路以下:當用戶購買經過cookie保存,結帳的時候用戶又不想註冊,咱們經過獲取他的手機號碼和地址,而後後臺自動生成一個普通用戶,將數據保存在數據庫中並清除cookie。session
訂單表函數
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 數量ui
訂單號惟一code
uniqid()函數