1. 程式人生 > 其它 >【資料庫設計】寬表和窄表的區別

【資料庫設計】寬表和窄表的區別

【資料庫設計】寬表和窄表的區別


一、寬表

(1)寬表:從字面意義上講就是欄位比較多的資料庫表。通常是指業務主題相關的指標、維度、屬性關聯在一起的一張資料庫表。由於把不同的內容都放在同一張表儲存,寬表已經不符合三正規化的模型設計規範,隨之帶來的主要壞處就是資料的大量冗餘,與之相對應的好處就是查詢效能的提高與便捷。這種寬表的設計廣泛應用於資料探勘模型訓練前的資料準備,通過把相關欄位放在同一張表中,可以大大提高資料探勘模型訓練過程中迭代計算時的效率問題。(一句話,空間換時間,便於訓練迭代、減少表關聯數量,修改少量資料時不需要該多張表)

(2)“寬表”特點:一個表就是一個class,每個欄位就是一個filed,操作簡單。但不便擴充套件。

二、窄表

(1)窄表:嚴格按照資料庫設計三正規化。儘量減少資料冗餘,但是缺點是修改一個數據可能需要修改多張表。

(2)“窄表”特點:方便擴充套件,能適應各種複雜的資料結構(樹形、繼承等),無論有多少配置,都不用修改表結構。但程式碼邏輯可能需要包裝一下。

轉載:https://zhuanlan.zhihu.com/p/140420911