1. 程式人生 > >使用 Power Designer 設計資料庫並生成指令碼

使用 Power Designer 設計資料庫並生成指令碼

如果你只要建立物理模型(通俗一點就是畫資料庫表),你可以
在建立工程後,new--physical data model。然後可以開始畫表了。

畫表:

畫表是注意,雙擊表的圖示進入屬性頁面,在這裡name是在powerdesigner裡
顯示的名稱,只是為了方便你看,跟資料庫沒關係的。code是在資料庫的編碼,
在general裡有comment,這個是在資料庫的comment。在columns這個tab標籤頁裡,
我們可以編輯表的列。注意,每一行的name也是在powerdesigner裡顯示的名稱,
這個只是方便你看的,跟資料庫沒關係。code就不用說了就是資料庫裡的欄位編碼。
那comment怎麼不見,我們雙擊最左邊行號,這時彈出這個屬性的詳細屬性編輯頁面。
在這裡可以看到comment(這裡該有其他的一些設定,不是很重要,自己看看吧).
(還有一種方法可以在column頁面直接看comment,這就需要我們定製column顯示的內容,
在這個標籤頁上面有一排圖示,比如插入一行等,其中有一個小漏斗似的圖示customize
 coulumns and filter,點選進入勾選我們想顯示的屬性即可,找到comment勾上就行了)

畫關聯:

在tools--display references中,在format--references可以設定
外來鍵關聯的線的樣式(曲線,顏色等)。同樣你也知道在這裡還可以設定
表,檢視等在powerdesigner中顯示的樣式。

在話外來鍵關聯式,在工具裡選擇references,例如A表中的b_id欄位是b表的
外來鍵,那就從a表開始畫箭頭到b表。畫好後,可以雙擊這條線彈出屬性頁面,
name,code也是powerdesigner顯示為了方便你看的,在資料庫,這個關聯的名稱在
integrity這個標籤頁可以看到並可編輯。我們也可以到priview這個標籤頁看看實際的
sql語句。
注意:在priview你看到的是實際要生成的sql語句。


資料庫報表;

畫好資料庫表盒檢視以後,我們儲存。這時儲存的是*.pdm格式的檔案,這是powerdesigner
預設的檔案格式。如果我們要方便別人看我們設計的資料庫結構,最好匯出報表而不是
這樣儲存為pdm檔案,因為別人還得去安裝powerdesigner軟體。

點選report--generate report彈出匯出報表頁面。
這裡選擇預設的full physical report(所有物理報表),
generate html(選擇這個最後生成的是html格式,用瀏覽器就可
開啟看了;選擇generate rtf最後生成的是rtf格式的檔案,用word
可以開啟看),下面還要寫報表的名稱和匯出路徑,這個不用說了,
有一點大家要注意,在laguage下拉列表要選simplified chinese(
簡體中文),否則生成的檔案有中文就會有亂碼。


現在可以把畫好的設計生成資料庫了,
首先我們要設定生成指令碼的引號,因為
PD生成Oracle資料庫建表SQL時,預設會給表名和欄位名加上雙引號。
解決方法:
把Database→EditCurrentDBMS→General→Script→Sql→Format→CaseSensitivityUsingQuote設定為NO即可

在dastabase選單中選擇generate database,選擇目錄和檔名稱,點確定即可。
到剛才的目錄下找到生成的sql檔案,開啟plsql,
這裡還不能直接執行,因為有一些sql語句會報錯,drop語句,檢視語句。
drop是因為還沒建表或檢視所以報錯;檢視是因為我們在powerdesigner裡沒定義,
所以報錯,把這些註釋掉。

&&&&&&&&&&&&&&&&&&&&&&&&&&&&&---  power designer 使用 -----&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&


PowerDesigner去掉SQL指令碼中的雙引號
◇問題描述:
PD生成Oracle資料庫建表SQL時,預設會給表名和欄位名加上雙引號,怎樣能去掉SQL指令碼中的雙引號呢?
◇解決方法:
把Database→EditCurrentDBMS→General→Script→Sql→Format→CaseSensitivityUsingQuote設定為NO即可

PowerDesigner中設定Entity的預設字型
◇問題描述:
建立Entity時,如果PD預設字型不適合自己的個人習慣,每次建立了一個實體後都要修改實體的字型,非常麻煩,是否有隻修改一次一勞永逸的方法呢?
◇解決方法:
Tools→DisplayPreferences...→Format→Entity→Modity...→Font→進行相應修改並儲存設定→SetAsDefault

取消name和code聯動
在修改name的時候,code的值將跟著變動,很不方便。修改方法:PowerDesign中的選項選單裡修改,在[Tool]-->[General Options]->[Dialog]->[Operating modes]->[Name to Code mirroring],這裡預設是讓名稱和程式碼同步,將前面的複選框去掉就行了。


&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

修改建表指令碼生成規則。
如果每個表格都有相同的欄位,可以如下修改:
Database -> Edit Current DBMS 展開 Script -> Object -> Table -> Create 見右下的Value值,可以直接修改如下:

/* tablename: %TNAME% */
create table [%QUALIFIER%]%TABLE% (
   %TABLDEFN%
   ts                   char(19)             null default convert(char(19),getdate(),20),
   dr                   smallint             null default 0
)
[%OPTIONS%]

其中的 ts、dr 兩列會在生成SQL指令碼的時候自動的插入每個表格中,其中的%TNAME% 變數是給每個表格的SQL新增一個該表的Name值註釋。

PowerDesigner生成SQL語句時不使用Domain
◇問題描述:
如果在PD中使用了Domain,生成SQLServer的資料庫SQL的指令碼中會使用與Domain對應的自定義資料型別,而不會使用SQLServer自己的資料型別,怎樣能讓PD生成SQL語句時使用SQLServer自己的資料庫型別,而不是Domain對應的自定義資料型別呢?
◇解決方法:
把Database→EditCurrentDBMS→General→Script→Objects→Domain→Enable設定為NO即可

PowerDesigner中設定Entity自動調整尺寸大小
◇問題描述:
當給Entity添加了欄位或其他修改時,Entiry的顯示尺寸大小不會自動調整,怎樣解決呢?
◇解決方法:
在Entity上點選右鍵→單擊Format...選單項→選擇size標籤頁→勾選Autoadjusttotext即可


PowerDesigner中設定表格屬性preview
◇問題描述:
點選表格屬性preview生成的sql語句要怎麼修改個,怎樣解決呢?
◇解決方法:
在選擇的table上點選右鍵→單擊properties...選單項→選擇physicaloptions就可以設定,設定完再點選左下角的applyto
在preview選項裡面最上面的工具欄,點選showgenerationoptions可以設定其它生產sql語法的格式。