PowerDesigner心得 轉自http://blog.csdn.net/zclzzz/article/details/5915779

來源:互聯網
上載者:User

使用powerdesigner進行資料庫設計確實方便,以下是一些常用的設定

附加:工具列不見了

調色盤(Palette)快捷工具列不見了

PowerDesigner 快捷工具列 palette 不見了,怎麼重新開啟,找回來呢

上網搜尋了一下”powerdesigner 圖形工具欄”,找到了找回PowerDesigner工具列palette的方法
Tools(工具列)
customsize toolbars(自訂工具列)
palette(調色盤)勾選

 

 

修改外鍵命名規則

選擇Database—>Edit Current DBMS
選擇Scripts-》Objects-》Reference-》ConstName
可以發現右側的Value為:

FK_%.U8:CHILD%_%.U9:REFR%_%.U8:PARENT%

可見,該命名方法是:'FK_'+8位子表名+9位Reference名+8位父表名,你可以根據這中模式自訂為:

FK_%.U7:CHILD%_RELATIONS_%.U7:PARENT%,

可以使FK名稱變為FK_TABLE_2_RELATIONS_TABLE_1
掌握這種方法後就可以按照自己的想法修改了

產生建庫指令碼SQL檔案中的表頭注釋很討厭,可以在 Databse -> Generate Database (Ctrl+G)視窗中,選擇Options卡片,去掉Usage的Title鉤選項即可。

添加外鍵
Model -> References建立一條外鍵後,雙擊進入外鍵屬性,在“Joins”卡片中可以選擇子表的外鍵欄位

 

如何?Name和code不自動相等
如何?在CDM中建立Entity時,Name和Code不自動對應

設定tools--Gerneral options--->dialog---->name to code mirroring

-------------------------------------

如何把NAME 列在 scrip裡顯示出來

修改欄位建置規則。要給每個欄位都添加一個注釋的話,同一視窗中展開 Script -> Object -> Column -> Add 的 Value修改為:

%20:COLUMN% [%COMPUTE%?AS (%COMPUTE%):%20:DATATYPE% [%IDENTITY%?%IDENTITY%:[%NULL%][%NOTNULL%]][ default %DEFAULT%]
     [[constraint %CONSTNAME%] check (%CONSTRAINT%)]]

其中的%COLNNAME%就是列的Name值(可以是中文)

---------------------------------------------------------------------------------

POWERdESIGEN 自增長列的設定

PDM裡查看錶的屬性,Columns選項卡,選中整列,查看列屬性,點左上方的properties表徵圖(有手形圖案的那個),此時開啟一個設定視窗,General選項卡裡面進行設定.  
在列屬性的General標籤頁裡有個Identity複選框,勾上就行了

--------------------------------------
1 如何在PowerDesigner下建索引
2 如何在PowerDesigner 下建自增列
3 如何在PowerDesigner 下檢查設計模型

1 如何在PowerDesigner下建索引
1 雙擊表設計圖,出來Table Properties,在Tab 頁中選擇 Indexes

2 單擊建立索引的屬性,出現Indexex Properties

3 增加一個索引包含的欄位

2 如何在PowerDesigner 下建自增列
2 使用SqlServer 資料庫中的下列語句來完成
建表語句中,在要做為自增列的欄位中,加上如下
IDENTITY(1,1)
還有可以使用下面語句,重設自增種子
dbcc checkident(ConfigSys,reseed,0);
3 如何在PowerDesigner 下檢查設計模型
1 在功能表列中選擇 Tools -? Check Model, 如

2 選擇要檢查的每項設定

3 確定後,將出來檢查結果匯總資訊

1. 設定CDM產生PDM時的錯誤檢查

Tools --> Check Model

 

2. 如何防止一對一的關係產生兩個引用(外鍵)
要定義關係的支配方向,占支配地位的實體(有D標誌)變為父表。
在cdm中雙擊一對一關聯性->Detail->Dominant role選擇支配關係

 

3. PowerDesigner8中的CDM設計的外鍵作主鍵的問題
兩個實體之間是一對一的關係。兩個實體的標識符是“一樣的”--但是好像CDM中不允許相同。這樣的情況怎麼處理?
CDM裡好像沒有外鍵,我是說轉換成PDM之後,外鍵又要做表的主鍵,在對應的CDM裡是怎麼設定的?
雙擊關係,在彈出的Relationship Properties視窗中選擇Detail選項,然後將Dependent複選框選中,即可

 

4. 禁止根據name自動輸入code

Tools --> General Options --> Dialog --> 取消選中Name to Code mirroring

這段時間,使用PD做資料庫模型,感覺很不錯,將自已的經驗總給一下.還有許多功能我沒時間總結,以後有時間,繼續補吧
1 如何在PowerDesigner下建索引
2 如何在PowerDesigner 下建自增列
3 如何在PowerDesigner 下檢查設計模型

1 如何在PowerDesigner下建索引
1 雙擊表設計圖,出來Table Properties,在Tab 頁中選擇 Indexes

2 單擊建立索引的屬性,出現Indexex Properties

3 增加一個索引包含的欄位

2 如何在PowerDesigner 下建自增列
2 使用SqlServer 資料庫中的下列語句來完成
建表語句中,在要做為自增列的欄位中,加上如下
IDENTITY(1,1)
還有可以使用下面語句,重設自增種子
dbcc checkident(ConfigSys,reseed,0);
3 如何在PowerDesigner 下檢查設計模型
1 在功能表列中選擇 Tools -? Check Model, 如

2 選擇要檢查的每項設定

3 確定後,將出來檢查結果匯總資訊

在 powerdesigner 中設定 自增 得索引不用那麼麻煩,其實只要在 概念性模型中在屬性中把columns中要自增得欄位得類型設定成為 serial 就可以了!

 

1。使用PowerDesigner檢查資料庫設計錯誤~

PowerDesigner 還可用於快速檢測新模型中的資料庫設計錯誤。

檢查新的模式:

從 [Tools] 菜單中選擇 [Check Model]。

此時,就會出現 [Check Model Parameters] 對話方塊。可以使用預設參數。

另外也可以直接在空白處單擊右鍵,選擇Check Model...即可,我一般喜歡這樣用。

單擊 [確定]。

此時,在 [Result List] 中就會顯示 [Check Model] 的結果。

2。如何將Conceptual Data Model (CDM)轉換成Physical Data Model(PDM)?

 

即將概念資料模型轉換成物理資料模型。

二者的區別是,CDM是純粹概念上的模型,PDM是和具體的資料庫類型相關的,比如SQL Server 2000或者Oracle。產生SQL語句當然也就需要從PDM產生。

 

在菜單上選擇Tools -> Generate Phisical Data Model

 

最後選擇你的資料庫類型,即可。

 

3。使用PowerDesigner產生SQL語句~

 

可以使用 PowerDesigner 產生一個 SQL 指令碼,該指令碼用於實施模型的所有組件。然後,使用 SQL 指令碼產生一個資料庫。

這時候要確保你用的是PDM。

產生 SQL 指令碼以建立資料庫:

從 [Database] 菜單中選擇 [Generate Database]。

此時,就會出現 [Database Generation] 對話方塊

在 [Directory] 欄位中鍵入 c:Temp,並在 [File Name] 欄位中鍵入 NewDemo.sql。

確保選中了 [ Generation]。

單擊 [Database] 選項卡,並確保選中了 [Create Database]。

瀏覽其它選項卡,以查看控制所產生指令碼的許多其它屬性的選項。

單擊 [確定]。

建立指令碼後,就會出現 [Result] 對話方塊。

4。為什麼出現Warning : table Existence of index 表名 ?

 

說明該表沒有建立索引。不過這是一個警告,不是錯誤,可以不用理會它。

 

5。如何建立聯合主鍵?

 

聯合主鍵就是一個表裡面有多個主鍵,比如一份學生選課的表裡面,學生ID和課程ID就同時是主鍵。

 

在設定Attributes,把2個欄位的P那項都勾上,P表示Primary Key主鍵。

 

6。如何建立外鍵Foreign Key?

 

在PowerDesigner中,通過建立關係Relationship就可以自動建立外鍵,不需要手動添加。

 

而建立Relationship有2種辦法:可以通過菜單選擇Model -> Relationships...,也可以通過在右邊的工具列中拖拽Relationship控制項。

 

7。如何產生資料字典?

 

通過菜單Report -> Report Wizard...可以產生

注意可以選擇Template.因為我是通過PDM產生,所以選擇了Standard Physical Template~

1、安裝PD v11.0版

2、由pdm產生建表指令碼時,欄位超過15字元就發生錯誤(oracle
原因未知,解決辦法是開啟PDM後,會出現Database的功能表列,進入Database - Edit Current DBMS -script-objects-column-maxlen,把value值調大(原為30),比如改成60。出現表或者其它對象的長度也有這種錯誤的話都可以選擇對應的objects照此種方法更改!
或者使用下面的這種方法:
產生建表指令碼時會彈出Database generation提示框:把options - check model的小勾給去掉,就是不進行檢查(不推薦)!
或者可以修改C:/Program Files/Sybase/PowerDesigner Trial 11/Resource Files/DBMS/oracl9i2.xdb檔案
修改好後,再cdm轉為pdm時,選擇“Copy the DBMS definition in model”把把這個資源檔拷貝到模型中。

3、產生的建表指令碼中如何把對象的雙引號去掉?
開啟cdm的情況下,進入Tools-Model Options-Naming Convention,把Name和Code的標籤的Charcter case選項設定成Uppercase或者Lowercase,只要不是Mixed Case就行!
或者選擇Database->Edit current database->Script->Sql->Format,有一項CaseSensitivityUsingQuote,它的 comment為“Determines if the case sensitivity for identifiers is managed using double quotes”,表示是否適用雙引號來規定標識符的大小寫,可以看到右邊的values預設值為“YES”,改為“No”即可!
或者在開啟pdm的情況下,進入Tools-Model Options-Naming Convention,把Name和Code的標籤的Charcter case選項設定成Uppercase就可以!

4、建立一個表後,為何檢測出現Existence of index的警告
A table should contain at least one column, one index, one key, and one reference.
可以不檢查 Existence of index 這項,也就沒有這個警告錯誤了!
意思是說沒有給表建立索引,而一個表一般至少要有一個索引,這是一個警告,不用管也沒有關係!

5、建立一個表在修改欄位的時候,一修改name的內容,code也跟著變化,如何讓code不隨著name變化
Name和Code 的右側都有一個按鈕“=”,如果需要不同步的話,把這個按鈕彈起來就可以了。
Tools->General Options->Dialog->Name to Code Mirroring (去掉)

6、由CDM產生PDM時,自動產生的外鍵的重新命名
PDM Generation Options->Detail->FK index names預設是%REFR%_FK,改為FK_%REFRCODE%,其中%REFRCODE%指的就是CDM中Relationship的code!另外自動產生的父欄位的規則是PDM Generation Options->Detail->FK column name template中設定的,預設是%.3:PARENT%_%COLUMN%,可以改為Par%COLUMN%表示是父欄位!

7、如何防止一對一的關係產生兩個引用(外鍵)
要定義關係的支配方向,占支配地位的實體(有D標誌)變為父表。
在cdm中雙擊一對一關聯性->Detail->Dominant role選擇支配關係

8、修改報告模板中一些術語的定義
即檔案:C:/Program Files/Sybase/PowerDesigner Trial 11/Resource Files/Report Languages/Chinese.xrl
Tools-Resources-Report Languages-選擇Chinese-單擊Properties或雙擊目標
修改某些對象的名稱:Object Attributes/Physical Data Model/Column/
        ForeignKey:外鍵
        Mandatory:為空白
        Primary:主鍵
        Table:表
用尋找替換,把“表格”替換成“表”
修改顯示的內容為別的:Values Mapping/Lists/Standard,添加TRUE的轉化列為是,FALSE的轉化列為空白
另外Report-Title Page裡可以設定標題資訊

 

1。pd中複製一列是,實際上是一個連結。源列的變動同時體現在複製列上

2。資料庫設計通常步驟:CDM確定主要結構--》產生PDM--》在PDM上修改,必要時產生CDM

3。若由pdm產生cdm再產生pdm,在pdm中修改過的外鍵名將被改回到預設值

4。必要時可以通過修改模板(Database-Edit Current DataBase)改變指令碼的格式。例如:
Script-Objects-Column-Add的Value中開頭增加一行“--%COLNNAME%”以便在指令碼中顯示列的中英文對照

5。去掉討厭的name、code映射:Tools-General Options-clear the Name to Code mirroring check box

6。對於大小寫不敏感的資料庫(如Oracle),PowerDesign在建立指令碼時自動給表名和欄位名加上雙引號,以“強字串”形式來擷取區分大小寫,這樣給SQL語句的編寫製造很多麻煩。去掉這個添足的功能:
Database -〉Edit Current DBMS -〉Script. -〉Sql -〉Format -〉CaseSensitivityUsingQuote
右邊面板參數值 Value 選擇No

7。由cdm產生pdm,可以控制是否將關係產生引用;由pdm產生指令碼,可以控制是否將引用產生外鍵

8。對於oracle而言,為表設定選項(如tablespace GPSSYSTEM)可使其建立到正確的資料表空間;為主鍵設定選項(using index tablespace GPSINDEX)使索引建立到正確的資料表空間中

 

1、安裝PD v12.0版

2、由pdm產生建表指令碼時,欄位超過15字元就發生錯誤(oracle)

原因未知,解決辦法是開啟PDM後,會出現Database的功能表列,進入Database - Edit Current DBMS -script-objects-column-maxlen,把value值調大(原為30),比如改成60。出現表或者其它對象的長度也有這種錯誤的話都可以選擇對應的objects照此種方法更改!

或者使用下面的這種方法:

產生建表指令碼時會彈出Database generation提示框:把options - check model的小勾給去掉,就是不進行檢查(不推薦)!

或者可以修改C:Program FilesSybasePowerDesigner Trial 11Resource FilesDBMSoracl9i2.xdb檔案

修改好後,再cdm轉為pdm時,選擇“Copy the DBMS definition in model”把把這個資源檔拷貝到模型中。

3、產生的建表指令碼中如何把對象的雙引號去掉?

開啟cdm的情況下,進入Tools-Model Options-Naming Convention,把Name和Code的標籤的Charcter case選項設定成Uppercase或者Lowercase,只要不是Mixed Case就行!

或者選擇Database->Edit current database->Script->Sql->Format,有一項CaseSensitivityUsingQuote,它的comment為“Determines if the case sensitivity for identifiers is managed using double quotes”,表示是否適用雙引號來規定標識符的大小寫,可以看到右邊的values預設值為“YES”,改為“No”即可!

或者在開啟pdm的情況下,進入Tools-Model Options-Naming Convention,把Name和Code的標籤的Charcter case選項設定成Uppercase就可以!

4、建立一個表後,為何檢測出現Existence of index的警告

A table should contain at least one column, one index, one key, and one reference.

可以不檢查 Existence of index 這項,也就沒有這個警告錯誤了!

意思是說沒有給表建立索引,而一個表一般至少要有一個索引,這是一個警告,不用管也沒有關係!

5、建立一個表在修改欄位的時候,一修改name的內容,code也跟著變化,如何讓code不隨著name變化

Name和Code 的右側都有一個按鈕“=”,如果需要不同步的話,把這個按鈕彈起來就可以了。

Tools->General Options->Dialog->Name to Code Mirroring (去掉)

6、由CDM產生PDM時,自動產生的外鍵的重新命名

PDM Generation Options->Detail->FK index names預設是%REFR%_FK,改為FK_%REFRCODE%,其中%REFRCODE%指的就是CDM中Relationship的code!另外自動產生的父欄位的規則是PDM Generation Options->Detail->FK column name template中設定的,預設是%.3:PARENT%_%COLUMN%,可以改為Par%COLUMN%表示是父欄位!

7、如何防止一對一的關係產生兩個引用(外鍵)

要定義關係的支配方向,占支配地位的實體(有D標誌)變為父表。

在cdm中雙擊一對一關聯性->Detail->Dominant role選擇支配關係

8、修改報告模板中一些術語的定義

即檔案:C:Program FilesSybasePowerDesigner Trial 11Resource FilesReport LanguagesChinese.xrl

Tools-Resources-Report Languages-選擇Chinese-單擊Properties或雙擊目標

修改某些對象的名稱:Object AttributesPhysical Data ModelColumn

ForeignKey:外鍵

Mandatory:為空白

Primary:主鍵

Table:表

用尋找替換,把“表格”替換成“表”

修改顯示的內容為別的:Values MappingListsStandard,添加TRUE的轉化列為是,FALSE的轉化列為空白

另外Report-Title Page裡可以設定標題資訊。

 

PowerDesign的使用主要是DBMS的配置

1、修改建表指令碼建置規則。如果每個表格都有相同的欄位,可以如下修改:

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值注釋。

2、修改欄位建置規則。要給每個欄位都添加一個注釋的話,同一視窗中展開 Script -> Object -> Column -> Add 的 Value修改為:

%20:COLUMN% [%COMPUTE%?AS (%COMPUTE%):%20:DATATYPE% [%IDENTITY%?%IDENTITY%:[%NULL%][%NOTNULL%]][ default %DEFAULT%]

[[constraint %CONSTNAME%] check (%CONSTRAINT%)]]/*%COLNNAME%*/

其中的%COLNNAME%就是列的Name值(可以是中文)

3、修改外鍵命名規則。選擇Database—>Edit Current DBMS

選擇Scripts-》Objects-》Reference-》ConstName

可以發現右側的Value為:

FK_%.U8:CHILD%_%.U9:REFR%_%.U8:PARENT%

可見,該命名方法是:'FK_'+8位子表名+9位Reference名+8位父表名,你可以根據這中模式自訂為:

FK_%.U7:CHILD%_RELATIONS_%.U7:PARENT%,

可以使FK名稱變為FK_TABLE_2_RELATIONS_TABLE_1

掌握這種方法後就可以按照自己的想法修改了

產生建庫指令碼SQL檔案中的表頭注釋很討厭,可以在 Databse -> Generate Database (Ctrl+G)視窗中,選擇Options卡片,去掉Usage的Title鉤選項即可。

4、添加外鍵

Model -> References建立一條外鍵後,雙擊進入外鍵屬性,在“Joins”卡片中可以選擇子表的外鍵欄位

5、去掉產生的SQL指令碼雙引號的問題:ORACLE 8I2::Script/Sql/Format/CaseSensitivityUsingQuote改成No,預設是Yes所以會有雙引號。

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

6、有關Powerdesgner資料模型設計中,屬性名稱同名問題的解決方案

PowerDesigner預設在CDM中不能存在相同名稱的實體屬性,這也是考慮到可能產生的一些如主鍵外鍵等名稱衝突問題,但當我們進行實際資料庫設計時,可能會多次使用相同資料項目(DataItem)便於理解各實體。為此需要對更改PowerDesigner相關設定。軟體預設為DataItem不能重複使用(重名),需要進行以下操作:

選擇Tools->Model Options,在Model Setting設定目錄中,將Data Item下的Unique Code取消選中即可,系統預設將Unique Code和Allow Reuse均選中。

同時該設定均是面向特定模型的,即針對當前模型有效,若希望在其它模型中也有此命名設定,則需要重新進行設定。不過在Check Model時,如果選擇全部Check,則依舊會報DataItem重名的錯誤資訊,這時需要我們在人為檢查確認資料項目無誤時,可以在選擇不對DataItem不檢查,各種資料類型對應匹配(這裡只給出與SQL Server中的常用對應類型,其它DBMS可以使用類似處理)

1 如何在PowerDesigner下建索引

2 如何在PowerDesigner 下建自增列

3 如何在PowerDesigner 下檢查設計模型

1 如何在PowerDesigner下建索引

1 雙擊表設計圖,出來Table Properties,在Tab 頁中選擇 Indexes

2 單擊建立索引的屬性,出現Indexex Properties

3 增加一個索引包含的欄位

2 如何在PowerDesigner 下建自增列

使用SqlServer 資料庫中的下列語句來完成

建表語句中,在要做為自增列的欄位中,加上如下

IDENTITY(1,1)

還有可以使用下面語句,重設自增種子

dbcc checkident(ConfigSys,reseed,0);

3 如何在PowerDesigner 下檢查設計模型

1 在功能表列中選擇 Tools -? Check Model, 如

2 選擇要檢查的每項設定

3 確定後,將出來檢查結果匯總資訊

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.