【1】PowerDesigner添加MySQL数据源

PowerDesigner版本:16.5。电脑系统64位,添加数据源时使用MySQL64位ODBC连接器不行,安装MySQL32位可以。​​下载mysql-connector-odbc-5.3.6-win32.msi​​,然后安装即可。

步骤如下:

① Database—Configure Connections…
PowerDesiger16与MySQL操作互转_相对路径
② 使用管理员身份添加数据源
PowerDesiger16与MySQL操作互转_MySQL_02
PowerDesiger16与MySQL操作互转_数据源_03
③ 选择MySQL ODBC 5.3 Unicode Driver(why not ANSI ?)
PowerDesiger16与MySQL操作互转_数据源_04
MYSQL Connector/ODBC 提供了两个版本,一个是 ANSI driver 和 Unicode driver 两个版本。

Unicode driver 版本提供了更多字符集的支持,也就是提供了多语言的支持。而ANSI driver 版本是只针对有限的字符集的范围。

④ 添加数据库连接信息进行测试
PowerDesiger16与MySQL操作互转_MySQL_05
再次打开Database–Configure Connections…如下图所示:
PowerDesiger16与MySQL操作互转_MySQL_06


【2】连接MySQL导出PDM文件

① 连接建立好的MySQL数据源
PowerDesiger16与MySQL操作互转_PowerDesigner_07
PowerDesiger16与MySQL操作互转_mysql_08


② 选择需要导出的数据库
PowerDesiger16与MySQL操作互转_数据源_09

默认为全选,一定要先将全选去掉!否则模型中将会有数据源下所有库所有表!
PowerDesiger16与MySQL操作互转_MySQL_10
然后再选择需要逆向的数据库,默认是没有选择的(上一步Deselect All效果),手动将需要的表打√。
PowerDesiger16与MySQL操作互转_数据源_11
PowerDesiger16与MySQL操作互转_mysql_12
然后导出即可!
PowerDesiger16与MySQL操作互转_mysql_13


③ 执行脚本将name从英文转为中文,即将comment–name

PowerDesiger16与MySQL操作互转_数据源_14

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

Private sub ProcessFolder(folder)
On Error Resume Next
Dim Tab 'running table
for each Tab in folder.tables
if not tab.isShortcut then
tab.name = tab.comment
Dim col ' running column
for each col in tab.columns
if col.comment="" then
else
col.name= col.comment
end if
next
end if
next

Dim view 'running view
for each view in folder.Views
if not view.isShortcut then
view.name = view.comment
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

PowerDesiger16与MySQL操作互转_数据源_15


④ 调整显示格式

PowerDesiger16与MySQL操作互转_数据源_16
PowerDesiger16与MySQL操作互转_PowerDesigner_17
PowerDesiger16与MySQL操作互转_PowerDesigner_18
最终效果图如下:
PowerDesiger16与MySQL操作互转_数据源_19


【3】创建PDM并同步到MySQL数据库

① 创建物理数据模型

PowerDesiger16与MySQL操作互转_数据源_20

② 创建表

PowerDesiger16与MySQL操作互转_数据源_21
PowerDesiger16与MySQL操作互转_PowerDesigner_22
PowerDesiger16与MySQL操作互转_相对路径_23
③ 添加列、主键等

表上面右键–columns或者在表模型上双击即可打开编辑界面。
PowerDesiger16与MySQL操作互转_MySQL_24
④ 添加表外键引用

同前几步,添加表tb_log如下:
PowerDesiger16与MySQL操作互转_相对路径_25
PowerDesiger16与MySQL操作互转_相对路径_26


⑤ 同步到MySQL

PowerDesiger16与MySQL操作互转_MySQL_27
PowerDesiger16与MySQL操作互转_mysql_28
PowerDesiger16与MySQL操作互转_mysql_29
PowerDesiger16与MySQL操作互转_PowerDesigner_30
这里选择目标数据库。
PowerDesiger16与MySQL操作互转_相对路径_31
PowerDesiger16与MySQL操作互转_mysql_32
PowerDesiger16与MySQL操作互转_PowerDesigner_33
PowerDesiger16与MySQL操作互转_数据源_34
同样可以在连接MySQL数据源情况下,修改MySQL数据库表结构,同步更新Model。
PowerDesiger16与MySQL操作互转_数据源_35


【4】PDM引用外部PDM的表并设置相对路径

① pdm引用外部pdm

项目用了多个库,每个库导出一个pdm,不同pdm的表之间有引用关系。

第一步,在powerdesigner中打开目标对象,如下所示:

PowerDesiger16与MySQL操作互转_PowerDesigner_36

其中pdm2的tb_login表中的login_name引用了pdm1中tb_user表的name字段。

第二步,从pdm1拷贝tb_user表以​​Paste as Shorcut​​​的方式粘贴到pdm2,然后创建引用。
PowerDesiger16与MySQL操作互转_mysql_37
② 设置相对路径

在第一步中虽然创建了外部引用,但是target model路径是绝对路径。这样当在其他电脑打开或者上传到SVN时,就会出现找不到的情况。故而,需要将其设置为相对路径。

将①中的窗口关闭,单独打开pdm2,然后如下操作:
PowerDesiger16与MySQL操作互转_mysql_38
PowerDesiger16与MySQL操作互转_MySQL_39