PowerDesigner是数据建模的老大,已经在用PD的用户一般是不需要转到EZDML来的,我们也不建议用户转过来。但如果是接手已经有PowerDesigner的物理模型,或其它原因(如国产化、授权问题、功能特性等)需要转到EZDML,可以通过PDM文件导入。
下面举个例子导入一个PDM,并通过SQL逆向导回PDM,顺便作一些简单的分析和生成演示。
打开PowerDesigner模型
启动PowerDesigner,在欢迎页打开示例Examples:
选择project.pdm这个文件:
打开后,默认显示主模型图:
这个是Employee模型图:
剩下那个不截图了。
准备pdm文件
接下来准备导入,首先pdm有二进制格式和xml格式之分,我们需要xml格式的。如果不确定是否是xml格式的,可将模型再另存为xml格式的pdm文件:
保存的pdm文件应该是可以用记事本打开的:
导入PDM文件
有了xml格式的pdm文件后,我们打开EZDML,新建文档,执行主菜单“模型|导入PDM文件…”(旧版为“文件|导入文件…”):
选择要导入的pdm文件:
导入结果,三个模型图都导进来了,还加了一个总的全部的模型图,不过EZDML设计较简单,不支持模型的树状分组,因此是全导到根级节点了:
表、字段、关系、逻辑名、颜色、位置都导入了,跟原版稍有差别,但基本上八九不离十了:
自动排列布局
总模型图是把所有表放一起了,但没有进行布局,只是所有表平铺在一起:
我们点一下工具栏上的“重新排列”,对模型图进行自动布局:
自动布局后的效果:
缩略图分析
接下来我们简单分析一下导入结果,我们接着看刚才自动布局的模型图,表对象较多,我们按F8切换到缩略图模型:
表对象之间的关系一目了然,很显然,Employee雇员表是一个关键表,我们就拿它来专门看下。
表对象属性
首先是字段列表:
描述字:
关系图:
生成代码
接着,从表属性窗口的右上角“更多”菜单,我们打开“生成”看看,这里可以生成各种SQL:
JAVA代码,这个是脚本生成的:
Markdown文档,也是脚本生成的:
可以直接在浏览器打开预览:
基本上就是接口文档了:
生成VUE-ElementUI的表单界面:
同样可以预览(这个需要从网络下载vue和element的库):
界面原型设计
接着看下界面原型,界面原型能让设计者看到表对象最终在界面上显示的大概样子,并且可以作一些简单的设计;它不能完全代替原型设计,但也是提供了辅助作用。这个好像有点偏离了EZDML的主业了,不过生成代码一直是EZDML的基础功能,时间长了自然就延伸到界面了。
这页面默认也是隐藏了,需要右上角“更多”菜单打开。打开后默认显示的是PC版面:
我们可以拖动一下列头,修改下位置和列宽(注意修改位置会同时修改字段的排列顺序):
通过右键菜单给前几列设置下数据生成类型,生成演示数据:
嗯,看起来有点像模像样的样子了。切换到手机列表版面:
双击列表项,进入明细详情:
点“修改”按钮,进入编辑页面:
通过右键菜单,将Employee function的编辑器类型修改为下拉框:
最终效果:
生成原型系统
我们演示下简单生成原型系统,执行主菜单“模型|生成代码”或工具栏的生成功能:
注意这个生成代码跟单表里的生成有所不同,这个是批量生成,且能生成一整套的工程代码。
在弹出的窗口中,选择layuiAmdin模板,点击生成:
生成完成,会自动打开一个小HTTP服务:
并打开浏览器访问原型系统:
这基本上就是一个简单的原型了,注意跟刚才我们设计的界面原型是不是很像:
表单:
这个是百度Amis的列表:
表单:
逆向导出到PD
目前EZDML不支持直接导出PDM格式,不过我们可以利用PD的逆向工程间接将EZDML的模型导出。
我们先在EZDML中将所有表生成为ORACLE的建库SQL:
将所有SQL复制到记事本,保存为SQL文件,比如我们保存到D:\test_exp.sql:
打开PD,执行菜单命令File|Reverse Engineer|Database:
输入名称,DBMS选择oracel11g:
选择Using script files使用SQL脚本文件,执行添加,将刚才生成的SQL文件选进来:
点确定,等待进度完成,就可以把基本模型导进来了(含注释):
当然,默认导入后逻辑名和物理名是一样的,如果希望从注释中提取逻辑名,可自行使用VB脚本来实现,网上有现成的例子,这里就不细述了。
PDM的导入导出和分析生成我们就说到这。