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

被折叠的 条评论
为什么被折叠?



