使用PowerDesigner作數據庫設計(二)程序員
CDM設計後續sql
在上一篇文章中,有一點給忘記了,在CDM設計窗口中,若是在設計中,實體entity愈來愈多,實體entity間的關係也會愈來愈複雜,像蜘蛛網同樣難以分辨,從可視化和可維護性上面講,這是不利的,有沒有辦法解決這個問題呢。辦法是有的,請看下圖:數據庫
圖-1數據結構
在圖中,點擊鼠標右鍵,選擇新增,在新增下選擇第一項Conceptual Diagram,這樣就能夠根據業務邏輯來創建一個子CDM,在打開的窗口中給子CDM命名,添加code和備註。數據庫設計
圖-2ide
若是想讓每個子CDM排列有序,則能夠在名稱前面增長數字來進行排序,以下圖所示:工具
圖-3設計
對於實體Entity,關聯關係Relationships,還有Association及Association Link也能夠使用一樣的命名規則,根據業務邏輯在名字前添加數字,進行歸類存放,方便後續的審覈確認。code
*PDM介紹*
PDM是PhysicalDataMode的英文簡稱,物理數據模型的意思。PDM能夠直接建立,也能夠從CDM之間生成,還能夠從已有的PDM再次生成PDM。orm
在PDM中能夠對CDM生成的表結構,作進一步的核對、確認一下,這是否是就是本身想要的數據結構,須要注意的是CDM中的關聯association會直接生成對應的表table,還有一點須要注意,若是一個表中有兩個來自同一個表的外鍵,外鍵的命名還須要人爲的手動修改一下。
*CDM轉PDM,手把手實際操做*
第一步,選中即將轉化爲PDM的CDM設計稿上,在工具欄上,選擇Generate Physical Data Model,以下圖所示:
圖-4
第二步,在打開的窗口,進行PDM相關參數的設置,在第一個選項卡General,數據庫的選擇很是重要,要根據須要的數據類型,來選擇生成模型對應的數據庫類型。
圖-5
第三步,數據庫表前綴的設置,在上圖中,點開第二個選項卡detail,能夠看到一個table prefix,這個即是表前綴的設置。
圖-6
第四步,切換到第四個選項卡Selection,對須要生成PDM的實體,作一個選擇,若是不須要,就去掉實體前複選框中的勾選,若是所有須要,這一步能夠跳過。
圖-7
最後,點擊肯定按鈕,根據CDM的大小,等待個幾秒鐘,就能夠看到已生成PDM的樣子了,以下圖:
圖-8
只需三步,CDM就轉換成PDM了,很是簡單吧。
再來確認一下,學生和課程關係表,生成的對不對,打開Tables下的學生和課程關係表,表的前綴是有的,這個是對的。
圖-9
再確認一下,表中的列,喔,好吧,學生和課程關聯關係時,錯把班級和這張表關聯了,真是太粗心,怎麼辦,再回到CDM設計中,把上面的相關步驟再走一遍嘍!
圖-10
回到CDM設計界面,在刪除的確認對話框中,有個選項須要注意一下
圖-11
在刪除對話框中,默認的選項Delete objects,會連帶刪除掉左邊列表中的關係或實體,下面的選項則只會刪除右邊的關係或實體。在操做實體時,若是不想刪除左邊菜單欄中的實體,則選擇Delete symbols only選項。肯定要刪除哪些項目後,按下OK按鈕確認刪除操做。
圖-12
好吧,設計真是個細心活,最後再把PDM生成一下,生成的結果以下圖:
圖-13
再把每一個表中的列信息覈對一遍,這下,學生和課程關係表中的列信息都是對的,課程id和學生id分別做爲外鍵,插入到這張表中,在此表中,課程id和學生id構成了聯合主鍵。
圖-14
在學生表中,班級也是做爲外鍵插入到學生表中的,以下圖所示:
圖-15
*PDM生成sql語句*
第一步,鼠標焦點落在須要生成PDM的設計稿上,而後就能夠在菜單欄看到數據庫這個選項,點擊數據庫,選擇Generate Database選項
圖-16
第二步,在打開的Database Generation窗口中,設置文件須要保存的路徑,文件名稱,sql語句的組成。
圖-17
第三步,在後面幾個選項卡中,還有其餘的選項,在Preview選項卡中,還能夠預覽到sql語句的效果,以下圖所示:
圖-18
最後點擊肯定按鈕,而後到文件保存的位置,查看sql語句的文檔便可,文檔中的sql語句和預覽preview中的是同樣的。
從以上生成sql語句的過程來看,這一步還算是簡單的,只需三步走。下面的一步就比較複雜啦。
*PDM生成word可視化文檔*
第一步,鼠標焦點落在須要須要生成word可視化文檔的PDM設計稿上,而後點擊工具欄中的報告,若是是第一次使用,則須要打開Report Templates窗口,首先設計word導出模板,以下圖所示:
圖-19
圖-20
第二步,在打開的List of Report Templates模板中,點擊新建模板圖表後,會出現下面窗口Report Template Type,經過這個窗口給模板命名,選擇生成的語言類型,選中的數據模板類型,以下圖所示,最後按OK按鈕肯定。
圖-21
第三步,模板設計細節。點擊確認按鈕後會出現下面操做窗口,模板內容的選擇。在這一步,須要肯定將要輸出的word文檔,都有哪些內容展現,table的列表清單,table表頭信息,table下的每一列,每一列的數據類型及備註等等。
圖-22
拖兩個title到文檔下,第一個title下面展現table清單,把list of tables拖到第一個title下,這時已經完成了模板的頭部設計。
圖-23
接下來,在Available items列表下,找到Table文件夾,打開Table文件夾,把Table Card拖到第二個title下,再找到List of column,把這個也拖到第二個title下,見圖-25,把多餘的刪掉。
圖-24
這個步驟考驗拖拖拉拉的能力,須要多點耐心,Java程序員還真不習慣這樣拖拖拉拉的。
圖-25
最後按保存按鈕,在彈框裏選擇合適的保存路徑。
圖-26
行到此處,模板的設計就告一個段落了,點擊右上角的關閉按鈕,關閉這個設計模板的窗口,接下來檢驗這個模板是否是咱們想要的。
圖-27
第四步,模板驗證。鼠標焦點落在要導出word模板的PDM設計稿上,打開圖-19的對話框,打開Generate Report窗口,在打開的窗口中,選擇剛剛設計的模板,導出文檔的後綴,語言類型及存儲路徑。
圖-28
第五步,確認輸出。按下OK按鈕確認後,會彈出對話框,點擊是,打開已經生成好的word文檔,預覽一下格式
圖-29
這份看起來高大上的文檔,還有些不足,行之間缺乏下劃線,列表清單缺乏備註等等。
圖-30
第六步,模板設計再確認。從模板保存的路徑,打開模板,選擇模板中的項目,點擊鼠標右鍵,分別對format和layout進行設計,format主要是對格式的設置,layout是對數據項展現的設置,根據須要進行設置,設置好後保存。
圖-31
圖-32
圖-33
最後,再次生成word文檔,打開文檔,是否是以爲很完美呢,感受不完美繼續修改模板吧,哈哈。
圖-34
最後總結
CDM、PDM是PowerDeginer工具作數據庫設計時最常使用的,PowerDeginer裏面的功能還有不少,都待研究。
使用了PowerDeginer這款工具後,有沒有以爲作數據庫設計高效了不少呢,固然,作設計是細心活,粗心時還須要多review幾回。