表結構
1.使用者表
使用者名稱不允許重複,所以併發的時候可以利用鎖的機制解決。
查詢某個使用者名稱是否存在,可以用同步的方法。但分布式架構該方法不可取。
所以還是通過資料庫的唯一索引btree這種方式,把username設定成唯一索引。
設定成innodb引擎?主鍵是id
2.分類表
表可以設定成遞迴,樹狀結構分類可能是無限層級擴充套件
遞迴的結束條件設定成parent_id為0時,說明是根節點,結束。
主要關注id和parent_id的聯絡
3.產品表
decimal是乙個非常精確的計算
4.購物車表
購物車會持久化(它是屬於哪個user的)
增加了user_id的索引,因為我們經常會使用非主鍵user_id進行查詢,提高該錶的查詢效率。
5.支付資訊表
6.訂單表
訂單號也加了唯一索引
7.訂單明細表
此處的user_id其實是乙個冗餘字段,可以提高查詢效率。
8.收貨位址表
表關係天藍色的表代表內部有索引
order_item和order表是多對一的關係
order_item和product是一對一的關係
表不用外來鍵,是為了以後在擴充套件分庫分表、清洗資料以及內建觸發器的時候避免麻煩。
對有些字段可以提前設定一些冗餘,比如主圖main_image。
唯一索引
唯一索引unique是為了保證資料的唯一性
單索引及組合索引
為了查詢更加快速
後悔藥-時間戳
查業務問題的後悔藥:
create_time:資料建立時間
update_time:資料更新時間(記錄最新一次更新時間)
每個表建表的時候一定要加上,要存datatime型別,不要用data,可以檢視具體的時間點。
結構設計 資料表設計 常用表結構設計
為了建立冗餘較小 結構合理的資料庫,設計資料庫時必須遵循一定的規則。在關係型資料庫中這種規則就稱為正規化。位址一般包括 省 市 縣 區 詳細位址 我們當然可以儲存乙個字段 使用分隔符 json 等儲存 介紹字段介紹 字段介紹 idbigint id parentid parentidlist chi...
Hbase表結構設計
一 主體思路 先確定查詢場景,再確定表結構。二 主鍵設計 主鍵設計需要考慮兩個問題 1.選擇哪些作為主鍵?2.當主鍵大於1個時,如何排列。2.1 邏輯上用於表示行的唯一性的列必須作為主鍵 2.2 單個查詢場景中一定出現的列可以考慮加入主鍵列,用於優化查詢效能 2.3 在多個查詢場景都出現的主鍵列要排...
HBase表結構設計
列簇設計 版本設計 資料壓縮 rowkey設計原則 在hbase有很多張表,這些表需要按照業務劃分開,為方便管理這些表,不同業務就有不同的命名空間,類似hive中的資料庫,不同的資料庫用來儲存不同型別的表。注 建立命名空間 create namespace momo chat 檢視命名空間列表 li...