目錄數據庫
關係型數據庫建議在E-R模型的基礎上,咱們須要根據產品經理的設計策劃,抽取出來模型與關係,制定出表結構,這是項目開始的第一步。數據庫設計
在開發中有不少設計數據庫的軟件,經常使用的如power designer,db designer等,這些軟件能夠直觀的看到實體及實體間的關係。性能
設計數據庫,多是由專門的數據庫設計人員完成,也多是由開發組成員完成,通常是項目經理領組員完成。設計
通過研究和對使用中問題的總結,對於設計數據庫提出了一些規範,這些規範被稱爲範式(Normal Form)orm
目前有跡可循的共有8種範式,通常須要遵循3範式便可:對象
第一範式是最基本的範式,強調的是列的原子性,即列不能再分紅其餘幾列blog
上圖不符合第一範式,買家地址能夠拆分ip
這樣修改就遵循了第一範式。修改後的訂單表 在用戶使用城市進行分類的時候會很是方便,提升了數據庫性能開發
首先是基於第一範式,另外包含兩部份內容,一是表必須有一個主鍵;二是沒有包含在主鍵中的列必須徹底依賴於主鍵,而不能只依賴主鍵的一部分。也就是說在一個數據表中,只能保存一種數據,不能把多種數據保存在同一張表中。產品
上面的訂單表能夠繼續拆分
首先是基於第二範式,另外非主鍵列必須直接依賴於主鍵,不能存在傳遞依賴。 確保數據表中每一列數據都和主鍵直接相關,而不能間接相關。要求一個關係中不包含在其餘關係已包含的非主鍵字段信息。
上圖看出,雖然單價和商品直接相關,但單價不與訂單直接相關,不符合第三範式,還能夠繼續拆分。