(四)購物商城數據庫設計-訂單系統設計

上一篇文章購物商城數據庫設計-商品表設計中咱們介紹了商品表的設計與實現。算法

接下來咱們來一塊兒設計下訂單表。數據庫

訂單系統在整個商城體系中的做用很是重要,由於一些業務的開展每每是圍繞訂單來展開的。所以設計好一個訂單系統是多麼的重要。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(評論圖片)

好了,訂單系統設計到此爲了,固然圍繞訂單系統還有更多的業務能夠開展,這裏只作了一些基本的結構設計。

順便說一句,若是一開始就想作分佈式系統,建議把商品相關的表和訂單表放在同一個數據庫中,一則是由於訂單業務須要查詢商品相關的數據,二則是由於放在一塊兒作事務比較容易,否則須要作分佈式事務,加大了開發成本。前期項目規劃的時候這點須要考慮到。

相關文章
相關標籤/搜索