做網站-數據庫的設計要考慮的設計原則有哪些呢
做網站-數據庫的設計要考慮的設計原則有哪些呢?
數據庫是整個軟件應用的根基,是軟件設計的起點,它起著決定性的質變作用,因此我們必須對數據庫設計高度重視起來,培養設計良好數據庫的習慣,是一個優秀的軟件設計師所必須具備的基本素質條件!
那么我們要做到什么程度才是對的呢?下面做網站小編就說說數據庫設計的原則:
1、數據庫設計最起碼要占用整個項目開發的40%以上的時間
數據庫是需求的直觀反應和表現,因此設計時必須要切實符合用戶的需求,要多次與用戶溝通交流來細化需求,將需求中的要求和每一次的變化都要一一體現在數據庫的設計當中。如果需求不明確,就要分析不確定的因素,設計表時就要事先預留出可變通的字段,正所謂“有備無患”。
2、數據庫設計不僅僅停留于頁面demo的表面
頁面內容所需要的字段,在數據庫設計中只是一部分,還有系統運轉、模塊交互、中轉數據、表之間的聯系等等所需要的字段,因此數據庫設計絕對不是簡單的基本數據存儲,還有邏輯數據存儲。
3、數據庫設計完成后,項目80%的設計開發在你腦海中就已經完成了
每個字段的設計都是有他必要的意義的,你在設計每一個字段的同時,就應該已經想清楚程序中如何去運用這些字段,多張表的聯系在程序中是如何體現的。換句話說,你完成數據庫設計后,程序中所有的實現思路和實現方式在你的腦海中就已經考慮過了。如果達不到這種程度,那當進入編碼階段后,才發現要運用的技術或實現的方式數據庫無法支持,這時再改動數據庫就會很麻煩,會造成一系列不可預測的問題。
4、數據庫設計時就要考慮到效率和優化問題
一開始就要分析哪些表會存儲較多的數據量,對于數據量較大的表的設計往往是粗粒度的,也會冗余一些必要的字段,已達到盡量用最少的表、最弱的表關系去存儲海量的數據。并且在設計表時,一般都會對主鍵建立聚集索引,含有大數據量的表更是要建立索引以提供查詢性能。對于含有計算、數據交互、統計這類需求時,還要考慮是否有必要采用存儲過程。
5、添加必要的(冗余)字段
像“創建時間”、“修改時間”、“備注”、“操作用戶IP”和一些用于其他需求(如統計)的字段等,在每張表中必須都要有,不是說只有系統中用到的數據才會存到數據庫中,一些冗余字段是為了便于日后維護、分析、拓展而添加的,這點是非常重要的,比如黑客攻擊,篡改了數據,我們便就可以根據修改時間和操作用戶IP來查找定位。
6、設計合理的表關聯
若多張表之間的關系復雜,建議采用第三張映射表來關聯維護兩張表之間的關系,以降低表之間的直接耦合度。若多張表涉及到大數據量的問題,表結構盡量簡單,關聯也要盡可能避免。
7、設計表時不加主外鍵等約束性關聯,系統編碼階段完成后再添加約束性關聯
這樣做的目的是有利于團隊并行開發,減少編碼時所遇到的問題,表之間的關系靠程序來控制。編碼完成后再加關聯并進行測試。不過也有一些公司的做法是干脆就不加表關聯。
8、選擇合適的主鍵生成策略
數據庫是整個軟件應用的根基,是軟件設計的起點,它起著決定性的質變作用,因此我們必須對數據庫設計高度重視起來,培養設計良好數據庫的習慣,是一個優秀的軟件設計師所必須具備的基本素質條件!
那么我們要做到什么程度才是對的呢?下面做網站小編就說說數據庫設計的原則:
1、數據庫設計最起碼要占用整個項目開發的40%以上的時間
數據庫是需求的直觀反應和表現,因此設計時必須要切實符合用戶的需求,要多次與用戶溝通交流來細化需求,將需求中的要求和每一次的變化都要一一體現在數據庫的設計當中。如果需求不明確,就要分析不確定的因素,設計表時就要事先預留出可變通的字段,正所謂“有備無患”。
2、數據庫設計不僅僅停留于頁面demo的表面
頁面內容所需要的字段,在數據庫設計中只是一部分,還有系統運轉、模塊交互、中轉數據、表之間的聯系等等所需要的字段,因此數據庫設計絕對不是簡單的基本數據存儲,還有邏輯數據存儲。
3、數據庫設計完成后,項目80%的設計開發在你腦海中就已經完成了
每個字段的設計都是有他必要的意義的,你在設計每一個字段的同時,就應該已經想清楚程序中如何去運用這些字段,多張表的聯系在程序中是如何體現的。換句話說,你完成數據庫設計后,程序中所有的實現思路和實現方式在你的腦海中就已經考慮過了。如果達不到這種程度,那當進入編碼階段后,才發現要運用的技術或實現的方式數據庫無法支持,這時再改動數據庫就會很麻煩,會造成一系列不可預測的問題。
4、數據庫設計時就要考慮到效率和優化問題
一開始就要分析哪些表會存儲較多的數據量,對于數據量較大的表的設計往往是粗粒度的,也會冗余一些必要的字段,已達到盡量用最少的表、最弱的表關系去存儲海量的數據。并且在設計表時,一般都會對主鍵建立聚集索引,含有大數據量的表更是要建立索引以提供查詢性能。對于含有計算、數據交互、統計這類需求時,還要考慮是否有必要采用存儲過程。
5、添加必要的(冗余)字段
像“創建時間”、“修改時間”、“備注”、“操作用戶IP”和一些用于其他需求(如統計)的字段等,在每張表中必須都要有,不是說只有系統中用到的數據才會存到數據庫中,一些冗余字段是為了便于日后維護、分析、拓展而添加的,這點是非常重要的,比如黑客攻擊,篡改了數據,我們便就可以根據修改時間和操作用戶IP來查找定位。
6、設計合理的表關聯
若多張表之間的關系復雜,建議采用第三張映射表來關聯維護兩張表之間的關系,以降低表之間的直接耦合度。若多張表涉及到大數據量的問題,表結構盡量簡單,關聯也要盡可能避免。
7、設計表時不加主外鍵等約束性關聯,系統編碼階段完成后再添加約束性關聯
這樣做的目的是有利于團隊并行開發,減少編碼時所遇到的問題,表之間的關系靠程序來控制。編碼完成后再加關聯并進行測試。不過也有一些公司的做法是干脆就不加表關聯。
8、選擇合適的主鍵生成策略
東莞九天網絡有限公司是一家專業的百度推廣托管公司,讓您的花更少的錢獲得更多的咨詢轉化,歡迎咨詢
同類文章排行
- 網站建設流程分析及總結-九天網絡科技
- 網站建設的操作說明-九天網絡科技
- 競價托管淺談理清思路提升數據分析能力
- 網站制作公司淺說關于網站優化提升的三個階段
- 網站制作之網站優化從SEO起步 想要見到效果須從
- 競價關鍵詞的選取方法為?
- 影響網站流量10大優化因素
- 怎樣判別關鍵詞哪些詞性好?
- 競價托管在進行托管時需注意的內容
- 競價托管代運營淺析之創意優化技巧