打印mySQL数据库的ER图(800多个表)

时间:2010-06-22 11:34:59

标签: sql mysql database erd

我们有一个由Parallels构建的系统,它依赖于一个巨大的(800+)表来维护所有内容。

我需要学习这个系统,以便能够编写查询来检索数据,以便根据各种需求生成报告。

我很明显,难以隔离哪些表当前与手头的任务相关,所以我认为最好的方法是在整个系统表中生成并打印多个页面上的ERD。

我试图使用TOAD拖动所有表 - 崩溃了:) 在第二次尝试时,我在一段(很长一段时间)M-Z表成功后拖动了表A-N。

我甚至设法将它们全部调整大小,安排并将ERD保存到文件中。

然而,当我进入打印或预览时,打印的子流程崩溃了。

有关如何打印此大规模ERD的任何建议?或许是另一种方法?表名似乎不太自我解释,所以我不能(而且老实说,并不是真的想要)超过800多张表,并希望我不会错过我需要的东西或部分内容。

在我真正编写脚本和代码之前,我将非常感谢有关如何继续的任何建议或想法。

数据库在CentOS下的mySQL上,有些表是InnoDB,有些是MyISAM。 许多表似乎都有外键。

谢谢!

5 个答案:

答案 0 :(得分:7)

我在一个有几百张桌子(接近1k)的地方工作,没有人真正知道系统中发生了什么,公司正在成长和雇用很多。一个人的任务是做一个图表,他自动神奇地创建了一个巨大的平铺海报,其中包含连接各种表格的线条(遍布整个地方)。我不确定他用过什么,几年前就是Unix和Oracle(Linux和开源之前的方式)。他的图表中的表格布局没有真正的押韵或理由。他成功地创建了每张桌子的图表。 “海报”被放在一个公共区域的墙上,看起来很少,但没有人真正使用它,它无法使用,太杂乱,太无组织。结果,我使用MS-Word创建一个包含20个主表的单页图(它经历了几次迭代,因为我“发现”新主表),每个外键都有行,每个表都以逻辑方式定位。我展示了列名,数据类型,可空性,PK和所有FK。我把显示器上的图表放在墙上。最终每个人都想要我的图表副本,包括制作“海报”的人。当我离开那份工作时,他们仍然将我的图表交给新员工。

我建议您像浏览器一样工作,找到关键表并随时映射它们,在发现系统时根据需要制作尽可能多的特定图表。试图自动制作一张巨大的“海报”并不会很好。

答案 1 :(得分:5)

你试过mysql workbench吗? 如果你不介意Windows,你也可以尝试Enterprise Architect

答案 2 :(得分:1)

MySQL Workbench有一些很棒的工具可以从创建脚本进行逆向工程。我没有将它用于这么大的数据库,但你应该检查它。

链接:http://wb.mysql.com/

答案 3 :(得分:0)

IIRC,MS Sql Server有一些不错的实用程序来制作图表,我知道它有很多帮助,你可以添加一个表,它会自动添加所有相关的表。如果您可以将表转换为与MS SQL兼容的sql脚本,这可能有所帮助。

答案 4 :(得分:0)

Navicat 10.1及更高版本可以完成这项工作。使用其模型工具并将数据库导入其中,然后轻松重新排列。打印结果pdf或直接打印到打印机。