在項目初期需求分析完成之后,就需要將數據模型設計出來,一般我們進行數據模型設計時,總是想到的是設計的數據模型盡量符合“第三范式”。但是經過本人多個項目的實踐之后,在設計數據模型時不能只是考慮要符合“第三范式”,過意的考慮規范會導致效率及性能的問題,因此更應該根據產品或者項目中的具體功能來考慮。
在項目需求分析階段,對需求進行分類,分析需求中哪些信息經常進行增加,刪除,修改操作,哪些需求多進行查詢操作;將這些進行分類主要是在設計數據庫的時候考慮哪些數據可以進行冗余,哪些需要遵循范式。例如:大多數項目中都有“用戶管理”,“機構管理”,“菜單管理”等基礎平臺信息的功能,而這些功能又會被項目中其它功能使用到,然而對這些數據的操作往往在項目上線初期數據的操作主要是增加,刪除,修改,上線穩定之后對這些數據的操作大部分集中在查詢功能;而像業務信息則正好相反,上線初期對業務信息數據的操作壓力很小,但是系統逐漸穩定之后,業務信息數據量就會迅速增長。
根據數據操作的特點來設計數據模型。例如:系統管理數據,這些數據大多是用戶信息的維護,權限的維護,部門的維護等等;這些數據由于只是在系統使用初期頻繁的進行增加,刪除,修改,系統穩定后大部分是查詢操作,所以這部分的數據模型設計經可以多考慮一些數據冗余,數據一致性由程序進行保證,這樣在以后的查詢時就不必為了顯示某個字段信息而多關聯很多表。而像“業務信息管理”這樣的功能,由于整個系統穩定之后數據的操作主要在此,可以按照“第三范式”進行設計,以后的優化改造等也比較方便。