RDF搜索引擎——數據庫設計心得

數據庫的設計是一個項目的基石,數據庫的設計質量直接影響着後期代碼開發的進度,關於咱們組數據庫的具體設計能夠參考另外一篇博客(RDF搜索引擎——數據庫具體設計)這裏只談一些設計過程當中的心得和體會。html

一,數據庫設計流程數據庫

關於數據庫設計流程不一樣課本不一樣網站都有不一樣見解,通過此次項目實踐,我總結了比較適合本身的數據庫設計流程以及每一個流程一些須要注意的事項。服務器

首先數據庫的整個設計流程中從設計到最後檢驗都要始終注意數據完整性約束,包括實體完整性,引用完整性,域完整性,用戶定義的完整性(業務規則約束)數據庫設計

  1. 肯定需求:設計數據庫前必定要先仔細分析清需求後再動手,磨刀不誤砍柴工,需求分析不足或不正確就開始設計數據庫後期會須要反覆改(此次就由於太急了致使後期改了好屢次┬_┬)
  2. 肯定實體:簡單的數據庫可能不須要分析實體直接上,但稍微大點的項目先分析出實體對設計數據庫頗有幫助。這裏能夠藉助E-R圖來進行輔助分析。
  3. 肯定表格:大致設計出表格,這裏要注意的是關係數據庫中的「關係」,要注意區分以前分析出的實體之間的關係是一對一,一對多仍是多對多,若是是多對多須要一張額外的關係表來表達彼此的關係。
  4. 肯定字段:分析肯定好表格中的字段,包括字段是否能夠爲空,數據類型,主外鍵,是否設置索引等等,這一步和前一步能夠結合數據庫設計的三個範式進行考慮。
  5. 反覆檢驗:在正式在服務器裏搭數據庫前要反覆檢驗數據庫的設計的正確性以及合理性,若是不合理要及時進行修正迭代,在反覆確認後再部署,儘可能避免部署了數據庫後發現了問題再返回從新設計,這樣損失會比較大。

二,數據庫的設計合理性問題post

數據庫設計沒有惟一答案,可是會有更好的答案,在實際設計數據庫中不只要考慮正確性問題,還要考慮數據庫設計的合理性問題,好比通常系統都會有權限管理功能,不一樣權限的用戶可使用的功能不一樣,其中一種設計方案是不一樣權限的用戶分別創建一個表存儲,而另外一個設計方案是用戶都在一個表,用戶組是一個表,把不一樣用戶分到用戶組,功能分配只須要給用戶組分配,表面一看二者均可以實現功能,可是後者顯然更合理,由於它具備良好的拓展性和複用性,由於假如如今又有了一種新的類型的用戶,第一種設計方案就又須要新建一張表存儲這個類型的用戶,好,這也能解決,但哪一天有了100種用戶呢?1000種用戶呢?再好比在確保用戶用戶註冊帳號時要確保暱稱的惟一性,這裏可使用觸發器實現,也能夠設計惟一索引進行限制,可是哪一個更好一些呢?這個是否是也須要咱們去思考!因此咱們設計數據庫不只要設計的正確,還要設計的合理,要有拓展性複用性,同時性能,可靠性也要好。性能

三,數據庫的設計理論要結合實踐網站

理論要結合實踐,課本知識要辯證的吸取,好比課堂上講到存儲過程時更多地是在講存儲過程的好處,鼓勵你們多用存儲過程,對於存儲過程難以調試的缺陷幾乎一筆帶過,咱們組此次數據庫設計一開始就是嚴格按老師課堂上所講把表格,視圖,存儲過程,觸發器,權限,索引都逐個進行了思考,但到後來才瞭解到實際應用時會由於難以調試要儘可能避免使用存儲過程,不過咱們不走這條彎路也意識不到理論實踐要結合這一點教訓。搜索引擎

總之,數據庫設計這一路走來,感受很不容易,收穫頗豐,期待小組項目最終的成功!url

相關文章
相關標籤/搜索