1 數據庫設計
1.1 表關係梳理
仔細思考業務關係,獲得以下表關係圖
前端
1.2 用戶表結構
1.3 分類表結構
id=0爲根節點,分類實際上是樹狀結構數據庫
1.4 商品表結構
1.5 支付信息表結構
1.6 訂單表結構
- 乍一看,有必要搞這麼多種的時間嘛?有如下諸多緣由
- 前端顯示須要,那就必須存着呀!
- 方便定位排查問題,好比某用戶投訴某訂單一直不發貨,確定就須要時間去定位
- 方便數據分析,好比須要計算從用戶支付到最終發出商品的平均時間
- 根據訂單狀態確認相應訂單時間
1.7 訂單明細表
因爲價格等變更因素,須要記錄用戶購買時的商品相關屬性詳情,咱們在作表關聯時,遇到這種可變因素,要考慮是否作存檔。
數據庫設計
1.8 收貨地址
2 索引
2.1 惟一索引
惟一索引unique,保證數據惟一性
好比:性能
- 用戶表中的用戶名字段,寫相同的用戶名就會報錯。
訂單表中的訂單號
設計
2.2 單索引及組合索引
對單/多個字段作索引叫單/組合索引
3d
3 時間戳
用於定位排查業務問題
- create_ time: 建立時間
update_ _time: 更新時間blog
所以,每一個表裏基本都有該兩個字段哦!索引
4 總結
在數據庫設計時,注意以下幾點ci
- 表關係
- 單索引及組合索引
- 表結構
- 時間戳
惟一索引數據分析
參考
- 高性能 MySQL 第三版
Java支付電商平臺實戰