數據庫設計三大范式(例子圖解)


1.第一范式1NF(確保每列保持原子性)

  • 每一列屬性都是不可再分的屬性值,確保每一列的原子性
  • 兩列的屬性相近或相似或一樣,盡量合並屬性一樣的列,確保不產生冗余數據。

根據實際需求設計的字段值不可再分解。比如“部門”和“角色”在需求中都較常用,應該分開兩個字段。

 

 

 

2.第二范式2NF(確保表中的每列都和主鍵相關)(拆多表)

第二范式是說一張表中包含了多種不同的實體屬性,那么要必須分成多張表;

一個數據庫表中只能保存一種數據,不可以把多種數據保存在同一張數據庫表中。訂單表和商品表不能設計在一張表里,應該分開兩個表,再加一個多對多的商品id和訂單id關聯表。(一個表只描述一件事情)。

 

 

 

3.第三范式3NF(在2NF的基礎上加外鍵)

第三范式(3NF):必須先滿足第二范式(2NF),要求:表中的每一列只與主鍵直接相關而不是間接相關,(表中的每一列只能依賴於主鍵);

例如:訂單表中需要有客戶相關信息,在分離出客戶表之后,訂單表中只需要有一個用戶id即可(外鍵),而不能有其他的客戶信息。因為其他的客戶信息直接關聯於用戶id,而不是直接與訂單id直接關。

訂單表中的用戶信息不直接設計字段,設計一個用戶id字段再外鍵關聯用戶表即可。

 

注意:三大范式只是一般設計數據庫的基本理念,可以建立冗余較小、結構合理的數據庫。如果有特殊情況,當然要特殊對待,數據庫設計最重要的是看需求跟性能,需求>性能>表結構。所以不能一味的去追求范式建立數據庫。

數據庫五大約束:

  • 1.primary KEY:設置主鍵約束;
  • 2.UNIQUE:設置唯一性約束,不能有重復值;
  • 3.DEFAULT 默認值約束,height DOUBLE(3,2)DEFAULT 1.2 height不輸入是默認為1,2
  • 4.NOT NULL:設置非空約束,該字段不能為空;
  • 5.FOREIGN key :設置外鍵約束。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM