天天看點

資料庫設計簡要說明

資料庫設計的步驟,以及設計注意事項

最近,從頭做一個項目,把大概的功能捋了捋,然後做出一個原型。根據原型大家讨論,提一提建議,做一些修改和完善,我們下一步的工作就是根據原型進行程式的開發。依據原型設計要求,我們首先進行資料庫的設計。

資料庫的設計,網上的資料比較多,設計步驟分為六個階段,一是需求分析階段,了解和分析使用者需求,涉及資料和處理,這一步是基礎。二是概念結構設計階段,對使用者的需求進行總結、歸納和抽象,形成概念模型。三是邏輯結構設計階段,将概念模型轉換為資料庫系統支援的資料模型。四是資料庫實體設計階段,為資料模型選取一個合适的實體結構,主要是存儲結構和存取方法。五是資料庫實施階段,根據資料模型和實體結構,建立資料庫,組織測試資料,并運作資料庫。六是資料庫的運作和維護,根據資料的運作情況,對資料庫進行适當的調整。

我們項目沒有嚴格按照規定的步驟進行,但也是遵循這種設計思想,把資料庫設計的大概步驟和注意的問題做一些記錄。步驟分為3個。一是根據需求列出事實表(提法可能不準确,暫時用這個詞),也就是羅列事實,比如學校的管理系統,把學生,老師,班級,課程等以事實表的形式列出來,根據需求設計适當的字段。二是考慮事實表之間的關系,考慮各個表之間的關系,然後根據關系的不同分别處理。表間關系主要有一對一,一對多,多對多。如果是一對一,原則上可以合并,但根據含義的不同也可以分開。比如學生和使用者的關系,學生表可以記錄學生相關的資訊,使用者隻是學生登入時的狀态,這兩個表可以分開設計。一對多,這種情況比較多,比如,A表的一條記錄,在B表中多次使用,可以設計成A的主鍵為B的外鍵。班級和學生的關系是典型的一對多。多對多,這時候就需要中間表來完成,比如學生和老師就是多對多的關系,可以通過課程表作為中間表,建立老師和學生的聯系,如果沒有這種合适的中間表,也可以直接建立一個tableA_tableB_node的中間表。第三個步驟就是建立根據表間關系建立資料庫,然後再進行功能分析,可以嘗試着寫接口文檔,看資料結構能不能滿足接口要求,如果不能實作接口功能,再進一步調整資料庫。

一些注意的問題,要确定中心,圍繞着那個業務展開,則這個業務表要位于整個資料庫的中心,其它表(人和物)都和它有關聯。交易系統就是訂單,上課管理系統就是課表,等等。對A表中的資料進行分組,根據分組進行不同功能設計,可以加入group表,作為A表的外鍵。每個表的外鍵應該用不同的名稱,即外鍵不能重複,否則在建立表的過程中會報錯。