1. 程式人生 > >資料庫表設計原則

資料庫表設計原則

資料庫三正規化: *

第一正規化(1NF):

資料庫表的每一列都是不可分割的基本資料項,同一列中不能有多個值,即實體中的某個屬性不能有多個值或者不能有重複的屬性。(保持資料的原子性)

第二正規化(2NF):

滿足1NF後,要求表中的所有列,都必須依賴於主鍵,而不能有任何一列與主鍵沒有關係,也就是說一個表只描述一件事情;

第三正規化(3NF):

首先是 2NF,另外非主鍵列必須直接依賴於主鍵,不能存在傳遞依賴。即不能存在:非主鍵列 A 依賴於非主鍵列 B,非主鍵列 B 依賴於主鍵的情況。即沒個屬性都跟主鍵有直接關係而不是間接關係。

資料庫多表之間建表原則

一對多的關係

例如:商品表和商品分類表,一個分類對應多個商品,
建表原則:在‘多’的一方新增一個外來鍵,指向‘一’的一方的主鍵。

多對多的關係

例如:單管理資料庫當中“產品”表和“訂單”表之間的關係。單個訂單中可以包含多個產品。另一方面,一個產品可能出現在多個訂單中。
建表原則:: 建立一張中間表,將多對多的關係,拆分成一對多的關係,中間表至少要有兩個外來鍵,分別指向原來的那兩張表

一對一的關係

例如:班級和班長,一個班級對應一個班長。
建表原則:
-將一對一的情況,當作是一對多情況處理,在任意一張表新增一個外來鍵,並且這個外來鍵要唯一,指向另外一張表
-直接將兩張表合併成一張表
-將兩張表的主鍵建立起連線,讓兩張表裡面主鍵相等