20個數據庫設計最佳實踐

數據庫設計是整個程序的重點之一,爲了支持相關程序運行,最佳的數據庫設計每每不可能一蹴而就,只能反覆探尋並逐步求精,這是一個複雜的過程,也是規劃和結構化數據庫中的數據對象以及這些數據對象之間關係的過程。下面給出了20個數據庫設計最佳實踐,固然,所謂最佳,仍是要看它是否適合你的程序。一塊兒來了解了解吧。數據庫

使用明確、統一的標明和列名,例如 School, SchoolCourse, CourceID。 數據表名使用單數而不是複數,例如 StudentCourse,而不是StudentCourses。 數據表名不要使用空格。 數據表名不要使用沒必要要的前綴或者後綴,例如使用School,而不是TblSchool,或者SchoolTable等等。 數據庫中的密碼要加密,到應用中再解密。 (其實就是散列存儲、單向加密) 使用整數做爲ID字段,也許如今沒有這個必要,可是未來須要,例如關聯表,索引等等。 使用整數字段作索引,不然會帶來很大的性能問題 。 使用 bit 做爲布爾字段,使用整數或者varcha是浪費。同時,這類字段應該以「Is」開頭。 要通過認證才能訪問數據庫,不要給每個用戶管理員權限。 儘可能避免使用「select *」,而使用「select [required_column_list]」以得到更好的性能。 假如程序代碼比較複雜,使用ORM框架,例如hibernate,iBatis。ORM框架的性能問題能夠經過詳細的配置去解決。 分割不常使用的數據表到不一樣的物理存儲以得到更好的性能。 對於關鍵數據庫,使用安全備份系統,例如集羣,同步等等。 使用外鍵,非空等限制來保證數據的完整性,不要把全部的東西都扔給程序。 缺少數據庫文檔是致命的。你應該爲你的數據庫設計寫文檔,包括觸發器、存儲過程和其餘腳本。 對於常常使用的查詢和大型數據表,要使用索引。數據分析工具能夠幫助你決定如何創建索引。 數據庫服務器和網頁服務器應該放在不一樣的機器上。這回提升安全性,並減輕CPU壓力。 Image和blob字段不該該定義在經常使用的數據表中,不然會影響性能。 範式(Normalization)要按照要求使用以提升性能。Normalization作的不夠會致使數據冗餘,而過分Normalization 會致使太多的join和數據表,這兩種狀況都會影響性能。 多花點時間在數據庫設計上,不然你未來會付出加倍的時間來償還。安全

相關文章
相關標籤/搜索