1. 程式人生 > >(四)購物商城資料庫設計-訂單系統設計

(四)購物商城資料庫設計-訂單系統設計

接下來我們來一起設計下訂單表。

訂單系統在整個商城體系中的作用非常重要,因為一些業務的開展往往是圍繞訂單來展開的。因此設計好一個訂單系統是多麼的重要。

我們根據使用者的行為逐個設計表結構。

首先使用者瀏覽商品,將看中的商品加入到購物車,這裡應該有一張購物車表

購物車表(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..這樣如果中間缺少一個狀態可以新增進去)

如果購物車裡面有多個店鋪的商品,那麼應該分別為這些店鋪生成對應的訂單。平臺可以進行合併支付,但是訂單還是要歸店鋪的。

上面是訂單的基本資訊,接下來是訂單商品相關。

訂單商品表(order_product)
---
訂單編號
spuId
skuId
店鋪id
商品名稱
商品數量
商品價格

這裡order_info與order_product是1對多的關係,一個訂單可能有多個商品。

下單完成,等著發貨,物流資訊不能少,加下來是物流表

物流表(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(評論圖片)

好了,訂單系統設計到此為了,當然圍繞訂單系統還有更多的業務可以開展,這裡只做了一些基本的結構設計。

順便說一句,如果一開始就想做分散式系統,建議把商品相關的表和訂單表放在同一個資料庫中,一則是因為訂單業務需要查詢商品相關的資料,二則是因為放在一起做事務比較容易,不然需要做分散式事務,加大了開發成本。前期專案規劃的時候這點需要考慮到。