PowerDesigner是很是強大的數據庫設計軟件,熟練使用PowerDesigner可使數據庫設計高效而簡潔。PowerDesign具體操做在幫助文檔(按F1)裏面有詳細描述,這兒只是列出了經常使用的操做。PowerDesigner16.5破解漢化包: https://download.csdn.net/download/z645817/11221804mysql
1.若是想詳細瞭解編寫VBS腳本在PowerDesign裏自定義的一些命令與操做,具體的能夠參考 $PWD\PowerDesigner 9\VB Scripts 目錄下的腳本示例。
運行VB腳本在 Tools->Execute Commands 裏能夠進行操做。操做說明在幫助文檔裏寫的很清楚 F1,幫助文檔的位置在 Customizing and Extending PowerDesigner > Scripting PowerDesigner > Running Scripts in PowerDesign.sql
配置統一輩子成規則數據庫
二、修改建表腳本生成規則。若是每一個表格都有相同的字段,能夠以下修改:數據庫設計
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值註釋。編碼
三、修改字段生成規則。要給每一個字段都添加一個註釋的話,Database -> Edit Current DBMS 中展開 Script -> Object -> Column -> Add 的 Value修改成:spa
%20:COLUMN% [%COMPUTE%?AS (%COMPUTE%):%20:DATATYPE% [%IDENTITY%?%IDENTITY%:[%NULL%][%NOTNULL%]][ default %DEFAULT%] [[constraint %CONSTNAME%] check (%CONSTRAINT%)]]/*%COLNNAME%*/
其中的%COLNNAME%就是列的Name值(能夠是中文)。.net
四、修改外鍵命名規則。選擇Database —> Edit Current DBMS 選擇Scripts -> Objects -> Reference -> ConstName
能夠發現右側的Value爲:設計
FK_%.U8:CHILD%_%.U9:REFR%_%.U8:PARENT%
該命名方法是:'FK_'+8位子表名+9位Reference名+8位父表名,能夠根據這種模式自定義爲:code
FK_%.U7:CHILD%_RELATIONS_%.U8:PARENT%
可使FK名稱變爲FK_TABLE_1_RELATIONS_PARENT_1 掌握這種方法後就能夠按照本身的想法修改。
五、生成建庫腳本SQL文件中的表頭註釋很討厭,能夠在 Databse -> Generate Database (Ctrl+G)窗口中,選擇Format卡片,去掉Script conventions的 Title 鉤選項便可。
六、添加外鍵:Model -> References新建一條外鍵後,雙擊進入外鍵屬性,在「Joins」卡片中能夠選擇子表的外鍵字段。
七、在生成代碼時不包含drop語句
在菜單Database->Generate Database,選擇彈出的窗口中的Options標籤頁,去掉窗口右邊裏面的全部Drop選項便可。
8.在生成代碼中字段默認值不須要帶單引號',如default 'to_char(sysdate,'yyyymmdd')'要改爲default to_char(sysdate,'yyyymmdd')
在菜單Database->Edit Current DBMS... ,選擇General標籤頁,在窗口左邊選擇Script->Quote,而後把窗口右邊的Value後面的單引號去掉。
9.去掉生成的建表腳本中對象的雙引號
打開PD選擇Tools-Model Options-Naming Convention,把右邊Name和Code的標籤的Charcter case選項設置成Uppercase或者Lowercase,只要不是Mixed Case就行。
十、建立一個表在修改字段的時候,修改name的內容,code也跟着變化,如何讓code不隨着name變化
Name和Code 的右側都有一個按鈕「=」,若是須要不一樣步的話,把這個按鈕彈起來就能夠了,同步直接點擊"="。
修改方法:PowerDesign中的選項菜單裏修改,在Tool -> General Options->Dialog->Operating modes->Name to Code mirroring,這裏默認是讓名稱和代碼同步,去勾選複選框。
十一、mysql版本沒法生成視圖的問題
打開使用MySQL5.0的PDM以後,在菜單裏選擇Database->Edit Current DBMS..->確認DBMS使用的是MySQL5.0
打開左端樹狀結構Script->Objects->View -> Create,在右端的Value中寫入
create VIEW [%R%?[ if not exists]] %VIEW% as %SQL%
選中Drop,在右端的Value中寫入
drop table if exists %VIEW%
選中Enable,在右端的Value中選擇Yes,肯定保存。
注意,此修改只是修改了PowerDesigner程序的設置,只須要配置一次便可;可是它不對PDM文件作改動,沒有修改過的PowerDesigner不能生成視圖的SQL。
十二、創建一個表後,爲什麼檢測出現Existence of index的警告
A table should contain at least one column, one index, one key, and one reference.
能夠不檢查 Existence of index 這項,這條警告不影響建表。警告意思是說沒有給表創建索引,而一個表通常至少要有一列、一個索引、一個主鍵。
1三、PDM生成建表腳本時,字段超過15字符就發生錯誤
解決辦法是打開PDM後,會出現Database的菜單欄,進入Database -> Edit Current DBMS ->script->objects->column->maxlen,把value值調大(原爲30),好比改爲60。出現表或者其它對象的長度也有這種錯誤的話均可以選擇對應的 objects照此種方法更改,或者使用下面的這種方法:
●生成建表腳本時會彈出Database generation提示框:把options - check model的小勾給去掉,就是不進行檢查(不推薦)
1四、如何防止一對一的關係生成兩個引用(外鍵)
要定義關係的支配方向,佔支配地位的實體(有D標誌)變爲父表。在cdm中雙擊一對一關係->Detail->Dominant role選擇支配關係
1五、修改mysql表的類型,如由默認的myisam改爲innodb
修改單個表的就在表的屬性窗口中,選擇Physcial Options標籤頁,雙擊窗口右邊的窗口左邊的type=(ISAM),而後在窗口右邊下部選擇sql,再修改爲type=(innodb)
若是修改數據庫的類型爲innodb類型,打開模型的屬性窗口,選擇MySQL標籤頁,在Database type後的編輯框中錄入InnoDB便可。再選擇菜單database->default physical option,而後在彈出的窗口中左邊雙擊選擇type=[ISAM],在窗口右邊就出現type=[ISAM],用鼠標點中它,在窗口的下面type後選擇innodb,最後點「Apply to...」按鈕,選擇全部的表便可。
1六、從模型直接生成MSSQL數據庫表的時候沒有附帶上註釋
PowerDesigner這個工具能夠支持任何一種關係型數據庫的模型設計,由於在PowerDesigner中每一種數據庫模型的特性定義都存儲在一個xdb文件中,咱們能夠在[PowerDesigner_Install_Home]/Resource Files/DBMS下能夠找到。固然咱們也能夠本身建立一個新的xdb,定義好咱們想支持的數據庫模型的特性。
下面簡單地說明一下,使用的是PowerDesinger16企業版。Sybase有些簡化版本(如SQL Moduler)就不能自定義xdb,請你們注意。
●從菜單TOOLS->RESOUCES->DBMS,進入自定義數據模型
●PowerDesigner彈出一個對話框,列表框中列出了當前PowerDesigner支持的數據庫模型。選擇建立一個新的。輸入名字SQL SERVER 2010(EXTENDED),選擇從現有的SQL SERVER 2010複製,這樣SQL SERVER 2010(EXTENDED)就包含了原來SQL SERVER2010模型擁有的全部特徵。
●接下來,咱們就須要爲SQL Server 2010(Extended)添加支持自動生成表和列註釋代碼的特性。PowerDesinger把定義的特性用樹狀結構組織了起來,本篇要作的工做就是定義Script代碼特徵。咱們須要修改Script\Objects\Table\TableComment和Script\Objects\Column\ColumnComment中的腳本特徵代碼。
●SQL Server 2010在數據庫中保存表和列註釋是經過調用系統存儲過程sp_addextendedproperty來作的。那麼咱們只須要,分別寫上
表級的註釋代碼是:
EXECUTE sp_addextendedproperty N'MS_Description', N'%COMMENT%', N'user', N'%OWNER%', N'table', N'%TABLE%', NULL, NULL
列級的註釋代碼是:
EXECUTE sp_addextendedproperty N'MS_Description', N'%COMMENT%', N'user', N'%OWNER%', N'table', N'%TABLE%', N'column', N'%COLUMN%'
%COMMENT%之類的就是至關於替換變量,PowerDesigner在生成腳本的時候自動替換設計模型中替換變量的值。
●保存SQL Server 2010(Extended)成一個xdb文件。
●如今,能夠建立一個新的Physical Data Model了,數據庫模型選SQL Server 2010(Extended)。創建一個表,須要注意的是,必定要指定一個數據庫使用者,通常用dbo。咱們能夠爲表和列都添加上註釋。
●生成建庫腳本,菜單Databases->Generate Database。注意要選中comment選項。點擊肯定,就獲得最終的建庫腳本。打開看看,咱們看到了PowerDesinger根據咱們告訴它的規則生成了對應的代碼
EXECUTE sp_addextendedproperty N'MS_Description', N'僱員信息', N'user', N'dbo', N'table', N'Employee', NULL, NULL go EXECUTE sp_addextendedproperty N'MS_Description', N'主鍵ID,自動增長', N'user', N'dbo', N'table', N'Employee', N'column', N'EmployeeID' go
●咱們在SQL Server 2010中執行這個角本,而後經過Enterprise Manager能夠看到這些註釋。
1七、把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%*/
其中的%COLNNAME%就是列的Name值(能夠是中文)
1八、Identity
PDM裏查看錶的屬性,Columns選項卡,選中整列,查看列屬性,點左上方的properties圖標(有手形圖案的那個),此時打開一個設置窗口,General選項卡里面進行設置,在列屬性的General標籤頁裏有個Identity複選框,勾上就行。
1九、爲sql生成註釋,操做以下,用的是PowerDesigner16.5,在其中選擇Tools -> Excute commands->Edit/Run Script打開的窗口中添加如下信息,執行run
Option Explicit ValidationMode = True InteractiveMode = im_Batch Dim mdl ' the current model ' get the current active model Set mdl = ActiveModel If (mdl Is Nothing) Then MsgBox "There is no current Model " ElseIf Not mdl.IsKindOf(PdPDM.cls_Model) Then MsgBox "The current model is not an Physical Data model. " Else ProcessFolder mdl End If ' This routine copy name into comment for each table, each column and each view ' of the current folder Private sub ProcessFolder(folder) Dim Tab 'running table for each Tab in folder.tables if not tab.isShortcut then '把代表做爲表註釋,其實不用這麼作 tab.comment = tab.name Dim col ' running column for each col in tab.columns '把列name和comment合併爲comment col.comment= col.name next end if next Dim view 'running view for each view in folder.Views if not view.isShortcut then view.comment = view.name end if next ' go into the sub-packages Dim f ' running folder For Each f In folder.Packages if not f.IsShortcut then ProcessFolder f end if Next end sub
20、更換數據庫sql語句
選擇Database->change current DBMS,在DBMS中選擇對應的數據庫,如MySQL,點擊肯定後,而後選擇Database---》Generate Database選項,在彈出的窗口中選擇生成sql文件的保存路徑,點擊肯定,則可看到生成的sql語言徹底是按照MySQL的標準。
2一、新建概念模型(conceptual Data Model)
File-->New Model-->Conceptual Data Mode 或者點擊工做區,右鍵-->New Model-->Conceptual Data Mode
2二、打開模型時,會有方格線,去除方格線:Tools->Dispaly Preferences->Diagram 去勾選Show page delimiter。
2三、生成帶註釋的sql,Database-->Generate DataBase... 進入彈出框。 在Options頁籤能夠選擇要生存腳本的內容(Generate name in enpty comment),能夠選擇是否建立數據庫的腳本,選擇要生成腳本的表,文件編碼方式 在selection中選擇你須要生成sql的模塊,指定輸出目錄等。