數據庫的設計是一個項目的基石,數據庫的設計質量直接影響着後期代碼開發的進度,關於咱們組數據庫的具體設計能夠參考另外一篇博客(RDF搜索引擎——數據庫具體設計)這裏只談一些設計過程當中的心得和體會。html
一,數據庫設計流程數據庫
關於數據庫設計流程不一樣課本不一樣網站都有不一樣見解,通過此次項目實踐,我總結了比較適合本身的數據庫設計流程以及每一個流程一些須要注意的事項。服務器
首先數據庫的整個設計流程中從設計到最後檢驗都要始終注意數據完整性約束,包括實體完整性,引用完整性,域完整性,用戶定義的完整性(業務規則約束)數據庫設計
二,數據庫的設計合理性問題post
數據庫設計沒有惟一答案,可是會有更好的答案,在實際設計數據庫中不只要考慮正確性問題,還要考慮數據庫設計的合理性問題,好比通常系統都會有權限管理功能,不一樣權限的用戶可使用的功能不一樣,其中一種設計方案是不一樣權限的用戶分別創建一個表存儲,而另外一個設計方案是用戶都在一個表,用戶組是一個表,把不一樣用戶分到用戶組,功能分配只須要給用戶組分配,表面一看二者均可以實現功能,可是後者顯然更合理,由於它具備良好的拓展性和複用性,由於假如如今又有了一種新的類型的用戶,第一種設計方案就又須要新建一張表存儲這個類型的用戶,好,這也能解決,但哪一天有了100種用戶呢?1000種用戶呢?再好比在確保用戶用戶註冊帳號時要確保暱稱的惟一性,這裏可使用觸發器實現,也能夠設計惟一索引進行限制,可是哪一個更好一些呢?這個是否是也須要咱們去思考!因此咱們設計數據庫不只要設計的正確,還要設計的合理,要有拓展性複用性,同時性能,可靠性也要好。性能
三,數據庫的設計理論要結合實踐網站
理論要結合實踐,課本知識要辯證的吸取,好比課堂上講到存儲過程時更多地是在講存儲過程的好處,鼓勵你們多用存儲過程,對於存儲過程難以調試的缺陷幾乎一筆帶過,咱們組此次數據庫設計一開始就是嚴格按老師課堂上所講把表格,視圖,存儲過程,觸發器,權限,索引都逐個進行了思考,但到後來才瞭解到實際應用時會由於難以調試要儘可能避免使用存儲過程,不過咱們不走這條彎路也意識不到理論實踐要結合這一點教訓。搜索引擎
總之,數據庫設計這一路走來,感受很不容易,收穫頗豐,期待小組項目最終的成功!url