利用powerdesigner生成E-R图

本文介绍了在Windows Server 2008环境下,使用PowerDesigner 15生成MySQL数据库E-R图时遇到的问题及解决方案。问题包括:默认包含information_schema库,部分主外键关系未正确显示。解决方法包括:通过调整SQL文件,手动添加外键约束,然后使用PowerDesigner更新模型以生成完整的E-R图。此外,讨论了使用PowerDesigner生成E-R图的原因,如其功能强大,便于非数据库人员理解数据模型,以及在传统开发模式中的必要性。

环境: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/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/24349972/viewspace-2214063/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值