ITPub博客

首页 > 大数据 > 可视化 > 利用powerdesigner生成E-R图

利用powerdesigner生成E-R图

原创 可视化 作者:water_chou 时间:2018-09-12 17:27:00 0 删除 编辑

环境:windows server 2008,powerdesigner15(选择mysql5.0),

大前提:你的powerdesigner环境已经配置好,

利用powerdesigner15生成e-r图时遇到的问题(不知道这些问题在高版本中是不是已经解决了):


1、在利用powerdesigner反向工程生成mysql指定数据库的时候,总是默认带着information_schema。

由于对pd工具的不熟练,所以不知道如何去掉information_schema数据库的e-r;

另外资料显示任何mysql的用户都会有权限使用查看information_schema库;

所以从两个方面去掉对我而言都是无法实现的。


2、利用反向工程即使生成了e-r图,某些主外键的关系也没有完全很好的体现出来。在e-r图上是明显的箭头缺失的。这个第三个遇到的问题的本质估计是一样的。


3、不通过反向工程生成,直接使用sql文件生成模型;sql文件的生成方式是通过导出指定的数据库生成的。


使用这种方式生成的e-r图有一个好处是,不会带有information_schema的信息;但是同样有些外键是没法体现的。


这种局限的来源是mysql在导出sql文件的时候没有判断建表的顺序,所以导致外键创建失败。Oracle在导出脚本的时候就很合理,把外键约束统一放到建表之后统一创建,这样保证每个外键创建成功。


有了Oracle的思想 + 不想手工去调整建表的顺序,所有这一切都是为了更加自动化的生成完整的e-r,所以找了一个折中的办法解决。


在第3个问题的基础上,即已经导出了指定数据库的sql文件;然后在此基础之上,再进行所有的外键约束的导出。方法如下:

SELECT CONCAT('alter table ', table_name ,' add constraint ' ,constraint_name,' foreign key(',column_name,') references ',referenced_table_name,'(',referenced_column_name,');'

)FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE t WHERE t.TABLE_SCHEMA = 'db_name' AND t.referenced_table_name is not null;


然后把外键约束和sql文件结合在一起生成一个新的sql文件2.通过pd工具生成完整的e-r图。

pd->new model->physical data model ->database->update model from database->选择sql文件2。

通过这种方式终于有了完整的e-r图。



回过头来思考下:为什么要用pd生成e-r图?

1)、使用过navicat 生成e-r图,没有pd的功能强大。mysql8.0打包产品本身好像也支持e-r图,这个没有用过。

2)、e-r 可以提供给非数据库人员查看,更直观的了解数据模型。

3)、传统的开发模式需要e-r图。


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/24349972/viewspace-2214063/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
从事数据库开发很多年。

注册时间:2011-08-10

  • 博文量
    50
  • 访问量
    49136