【1】PowerDesigner添加MySQL数据源
PowerDesigner版本:16.5。电脑系统64位,添加数据源时使用MySQL64位ODBC连接器不行,安装MySQL32位可以。
步骤如下:
① Database—Configure Connections…
② 使用管理员身份添加数据源
③ 选择MySQL ODBC 5.3 Unicode Driver(why not ANSI ?)
MYSQL Connector/ODBC 提供了两个版本,一个是 ANSI driver 和 Unicode driver 两个版本。
Unicode driver 版本提供了更多字符集的支持,也就是提供了多语言的支持。而ANSI driver 版本是只针对有限的字符集的范围。
④ 添加数据库连接信息进行测试
再次打开Database–Configure Connections…如下图所示:
![](http://pubimage.360doc.com/wz/default.gif)
【2】连接MySQL导出PDM文件
① 连接建立好的MySQL数据源
![](http://pubimage.360doc.com/wz/default.gif)
![](http://pubimage.360doc.com/wz/default.gif)
② 选择需要导出的数据库
![](http://pubimage.360doc.com/wz/default.gif)
默认为全选,一定要先将全选去掉!否则模型中将会有数据源下所有库所有表!
![](http://pubimage.360doc.com/wz/default.gif)
然后再选择需要逆向的数据库,默认是没有选择的(上一步Deselect All效果),手动将需要的表打√。
![](http://pubimage.360doc.com/wz/default.gif)
![](http://pubimage.360doc.com/wz/default.gif)
然后导出即可!
![](http://pubimage.360doc.com/wz/default.gif)
③ 执行脚本将name从英文转为中文,即将comment–name
![](http://pubimage.360doc.com/wz/default.gif)
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
![](http://pubimage.360doc.com/wz/default.gif)
④ 调整显示格式
![](http://pubimage.360doc.com/wz/default.gif)
![](http://pubimage.360doc.com/wz/default.gif)
![](http://pubimage.360doc.com/wz/default.gif)
最终效果图如下:
![](http://pubimage.360doc.com/wz/default.gif)
【3】创建PDM并同步到MySQL数据库
① 创建物理数据模型
![](http://pubimage.360doc.com/wz/default.gif)
② 创建表
![](http://pubimage.360doc.com/wz/default.gif)
![](http://pubimage.360doc.com/wz/default.gif)
![](http://pubimage.360doc.com/wz/default.gif)
③ 添加列、主键等
表上面右键–columns或者在表模型上双击即可打开编辑界面。
![](http://pubimage.360doc.com/wz/default.gif)
④ 添加表外键引用
同前几步,添加表tb_log如下:
![](http://pubimage.360doc.com/wz/default.gif)
![](http://pubimage.360doc.com/wz/default.gif)
⑤ 同步到MySQL
![](http://pubimage.360doc.com/wz/default.gif)
![](http://pubimage.360doc.com/wz/default.gif)
![](http://pubimage.360doc.com/wz/default.gif)
![](http://pubimage.360doc.com/wz/default.gif)
这里选择目标数据库。
![](http://pubimage.360doc.com/wz/default.gif)
![](http://pubimage.360doc.com/wz/default.gif)
![](http://pubimage.360doc.com/wz/default.gif)
![](http://pubimage.360doc.com/wz/default.gif)
同样可以在连接MySQL数据源情况下,修改MySQL数据库表结构,同步更新Model。
![](http://pubimage.360doc.com/wz/default.gif)
【4】PDM引用外部PDM的表并设置相对路径
① pdm引用外部pdm
项目用了多个库,每个库导出一个pdm,不同pdm的表之间有引用关系。
第一步,在powerdesigner中打开目标对象,如下所示:
![](http://pubimage.360doc.com/wz/default.gif)
其中pdm2的tb_login表中的login_name引用了pdm1中tb_user表的name字段。
第二步,从pdm1拷贝tb_user表以Paste as Shorcut
的方式粘贴到pdm2,然后创建引用。
![](http://pubimage.360doc.com/wz/default.gif)
② 设置相对路径
在第一步中虽然创建了外部引用,但是target model路径是绝对路径。这样当在其他电脑打开或者上传到SVN时,就会出现找不到的情况。故而,需要将其设置为相对路径。
将①中的窗口关闭,单独打开pdm2,然后如下操作:
![](http://pubimage.360doc.com/wz/default.gif)
![](http://pubimage.360doc.com/wz/default.gif)