構建好開發環境後,Doking's BLOG數據庫規劃是第三步,它也是直接關系到數據庫以後是否能夠有效運行的關鍵步驟,也是對一個數據庫開發人員的規范要求。
3.1 數據庫的規范化
數據庫的規范化主要體現在表與表之間的關系、數據結構及存儲兩大方面。
3.1.1 數據表之間的關系
許多初學者常常認為,建立一個表儲存所有數據就可以了。如果這麼認為,那經常會造成數據冗余的。圖3-1-1是一個數據表,可以看到畫在紅色圈中的數據是冗余的。
冗余數據會影響數據庫的有效運行,甚至可以把數據庫推毀。為減少冗余數據,得把數據分開儲存成幾個表,並建立表與表之間的連接關系。表與表之間的連接關系,主要有一對多、多對多、一對一三種方式。
一對多關系,它是數據庫中最普通的關系類型。這種關系雙被稱為是父表與子表關系或主表與分表關系。圖3-1-2就體現了一種父表與子表關系。在這裡,專題表與回復表就是一對多的關系。專題表是父表,回復表是子表,專題表中的一行在回復表可有零行、一行或許多與之對應,而回復表中的每一行都與專題表中的相應的專題對應。
多對多關系,就是第一張表的每一行可對應第二張表的許多行,同樣地,第二張表中的每行也可與第一第表中的許多行相對應。例如,一個專題可以有許多用戶回復,一個用戶也可以作多次專題回復。這就需要建立第三張表,將專題代碼與用戶代碼連接,這個表就是前兩個表的父表。在圖3-1-3中,“回復表”就是“專題表”與“用戶表”的父表。
一對一的關系,就是將一個表中的行與另一表中的行連接來。這種關系非常少見,因為如是有的話,還不如把這兩個表合為一張表更為合理。