上一篇文章購物商城數據庫設計-商品表設計中咱們介紹了商品表的設計與實現。算法
接下來咱們來一塊兒設計下訂單表。數據庫
訂單系統在整個商城體系中的做用很是重要,由於一些業務的開展每每是圍繞訂單來展開的。所以設計好一個訂單系統是多麼的重要。json
咱們根據用戶的行爲逐個設計表結構。微信
首先用戶瀏覽商品,將看中的商品加入到購物車,這裏應該有一張購物車表數據庫設計
購物車表(order_cart) ---- skuId spuId 用戶id 店鋪id 商品名稱 商品數量 商品價格 狀態(下單以後對應商品就不該該顯示在購物車了)
選中購物車中的某些商品,進行下單,訂單表也就應運而生分佈式
訂單表(order_info) ---- 訂單編號(若是對編號格式沒什麼要求,可以使用雪花算法https://blog.csdn.net/u011499747/article/details/78254990來生成) itemCount (商品項數量,不是商品個數,好比手機*2,鼠標*1,這裏應該是2) 用戶id 店鋪id 下單時間 支付方式(可用數字表示,如1:支付寶,2:微信,3:銀行卡...) 支付時間 outTradeNo 支付寶訂單號 配送方式 指望配送日期 商品總額 運費 實際付款 訂單狀態(這裏的狀態可根據實際項目來定,能夠定10,20,30..這樣若是中間缺乏一個狀態能夠添加進去)
若是購物車裏面有多個店鋪的商品,那麼應該分別爲這些店鋪生成對應的訂單。平臺能夠進行合併支付,可是訂單仍是要歸店鋪的。.net
上面是訂單的基本信息,接下來是訂單商品相關。設計
訂單商品表(order_product) --- 訂單編號 spuId skuId 店鋪id 商品名稱 商品數量 商品價格
這裏order_info與order_product是1對多的關係,一個訂單可能有多個商品。code
下單完成,等着發貨,物流信息不能少,加下來是物流表blog
物流表(order_logistics) --- 訂單標號 物流公司id 物流公司編號 快遞單號 發貨時間 收貨時間 物流跟蹤表(order_logistics_flow) --- 訂單標號 物流公司標號 快遞單號 remark(根據第三方接口返回來的結果信息)
加下來設計一下發票表
訂單發票(order_invoice) --- 發票類型 發票擡頭 發票內容 發票代碼 發票號碼 開票日期 校驗碼 密碼區 服務名稱 規格型號 數量 單價 金額 合計 稅率 稅額 銷售方名稱 銷售方納稅人識別號 銷售方地址電話 銷售方開戶行及帳號 備註 收入款人 開票人
下單完成後進行支付,這裏會有支付記錄表,方便之後對帳
支付記錄表(order_pay_history) --- 訂單編號 支付方式 訂單總額 支付金額 pay_json(第三方支付平臺參數信息,可以使用json方式保存) remark (備註)
用戶收到貨後,能夠進行評論,下面是評論表
訂單評論(order_product_comment) --- spuId skuId 評論用戶id 用戶暱稱 點贊數 comment(評論內容) 評論分數(1~5分) 評論時間 product_info_json(評論的商品信息,如規格型號之類的) image_json(評論圖片)
好了,訂單系統設計到此爲了,固然圍繞訂單系統還有更多的業務能夠開展,這裏只作了一些基本的結構設計。
順便說一句,若是一開始就想作分佈式系統,建議把商品相關的表和訂單表放在同一個數據庫中,一則是由於訂單業務須要查詢商品相關的數據,二則是由於放在一塊兒作事務比較容易,否則須要作分佈式事務,加大了開發成本。前期項目規劃的時候這點須要考慮到。