目錄
- 資料庫設計
- 三范式
- 第一范式(1NF):
- 第二范式(2NF):
- 第三范式(3NF):
資料庫設計
關系型資料庫建議在E-R模型的基礎上,我們需要根據產品經理的設計策劃,抽取出來模型與關系,制定出表結構,這是專案開始的第一步,
在開發中有很多設計資料庫的軟體,常用的如power designer,db designer等,這些軟體可以直觀的看到物體及物體間的關系,
設計資料庫,可能是由專門的資料庫設計人員完成,也可能是由開發組成員完成,一般是專案經理領組員完成,
三范式
經過研究和對使用中問題的總結,對于設計資料庫提出了一些規范,這些規范被稱為范式(Normal Form)
目前有跡可循的共有8種范式,一般需要遵循3范式即可:
第一范式(1NF):
第一范式是最基本的范式,強調的是列的原子性,即列不能再分成其他幾列

上圖不符合第一范式,買家地址可以拆分

這樣修改就遵循了第一范式,修改后的訂單表 在用戶使用城市進行分類的時候會非常方便,提高了資料庫性能
第二范式(2NF):
首先是基于第一范式,另外包含兩部分內容,一是表必須有一個主鍵;二是沒有包含在主鍵中的列必須完全依賴于主鍵,而不能只依賴主鍵的一部分,也就是說在一個資料表中,只能保存一種資料,不能把多種資料保存在同一張表中,
上面的訂單表可以繼續拆分

第三范式(3NF):
首先是基于第二范式,另外非主鍵列必須直接依賴于主鍵,不能存在傳遞依賴, 確保資料表中每一列資料都和主鍵直接相關,而不能間接相關,要求一個關系中不包含在其他關系已包含的非主鍵欄位資訊,
上圖看出,雖然單價和商品直接相關,但單價不與訂單直接相關,不符合第三范式,還可以繼續拆分,

E-R模型
- E表示Entity,物體,設計物體就像定義一個類一樣,指定從哪些方面描述物件一個物體轉換為資料庫中的一個表
- R表示relationship,關系,關系描述兩個物體之間的對應規則,關系的型別包括一對一、一對多、多對多
- 關系也是一種資料,需要通過一個欄位存盤在表中
- 物體A對物體B為1對1,則在表A或表B中創建一個欄位,存盤另一個表的主鍵值
- 物體A對物體B為1對多:在表中創建一個欄位,存盤表A的主鍵值
- 物體A對物體B為多對多:新建一張表C,這個表只有兩個欄位,一個用于存盤A的主鍵值,一個用于存盤B的主鍵值
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/99361.html
標籤:MySQL
