1. 程式人生 > 其它 >團隊專案:個人獨立部落格系統——資料庫設計心得

團隊專案:個人獨立部落格系統——資料庫設計心得

團隊:浩傑說的都隊

成員:胡喆媛、許殷禎、姑麗加娜提、張雯凱、胡香銘、王浩傑

一、簡介

  我們的專案是個人獨立部落格系統,個人獨立部落格與QQ空間、朋友圈和微博之流的本質區別在於——前者服務自己,後者娛樂他人。同時,個人部落格所擁有的專業編輯能力,諸如程式碼塊、引用、貼圖等等功能,都是傳統社交工具所不具備的。

  在本系統中,資料庫的設計採用PowerDesigner進行,並且採用面向物件的設計方法,首先進行物件實體的設計,最後將物件持久化到資料庫中,所有的表和表之間的關聯(ER圖)都採用標準的PowerDesigner設計工具進行,這樣能夠將整個系統的設計和資料庫設計有機的結合起來。

二、CDM設計

  資料庫設計的第一步應該就是CDM設計了,我認為這也是相當關鍵的一步。我們首先從需求文件出發,結合原型圖所展現的功能和流程抽象出所需要的資料,經過討論修改,共確定了18個數據庫表,又經過老師的指導,完善了資料庫表的備份欄位和預留空白欄位。然後,我們便開始用PowerDesigner建立實體,分析實體之間的聯絡,實現CDM設計:

三、PDM設計

  

  當我們完成CDM設計之後,使用PowerDesigner可以直接生成PDM。但是生成PDM之後我們發現,有些實體中出現了原本沒有的多餘欄位,這是因為,在CDM設計的過程中,我們建立實體時不需要設定外來鍵,而在建立了實體和實體之間的關係之後,實體之間的外來鍵會自動生成,如果我們在CDM中設定了本應該是外來鍵的欄位,那麼在生成PDM之後就會產生多餘的欄位。例如在blog_imag實體中:

  

  生成PDM之後會多出一個外來鍵欄位blo_blog_id,而它與blog_id表示的含義相同。

  

  此外,在PDM中若要一個欄位既擔任主鍵又擔任外來鍵,需要手動設定。

  生成PDM之後,還可以利用PDM匯出資料字典和SQL檔案,SQL檔案可用來資料庫建表。

四、總結

  從現實專案中抽象出所需資料是一個很關鍵的過程,我感覺這對於有經驗的專業開發人員來說應該是輕車熟路,但對於我們這些缺乏經驗的小白來說就有點困難,我們一開始感覺無從下手,然後又經歷了遺漏資料的情況,最後到資料庫表的時候,又出現了資料冗餘等問題,從中我們體會到資料庫第一、二、三正規化以及各種約束的必要性。通過邊做邊學,我們最終一步步完成了資料庫的設計,加深了對資料庫設計相關知識的理解。

作者:王浩傑