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


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

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

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

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

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

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM