我们有一个由Parallels构建的系统,它依赖于一个巨大的(800+)表来维护所有内容。
我需要学习这个系统,以便能够编写查询来检索数据,以便根据各种需求生成报告。
我很明显,难以隔离哪些表当前与手头的任务相关,所以我认为最好的方法是在整个系统表中生成并打印多个页面上的ERD。
我试图使用TOAD拖动所有表 - 崩溃了:) 在第二次尝试时,我在一段(很长一段时间)M-Z表成功后拖动了表A-N。
我甚至设法将它们全部调整大小,安排并将ERD保存到文件中。
然而,当我进入打印或预览时,打印的子流程崩溃了。
有关如何打印此大规模ERD的任何建议?或许是另一种方法?表名似乎不太自我解释,所以我不能(而且老实说,并不是真的想要)超过800多张表,并希望我不会错过我需要的东西或部分内容。
在我真正编写脚本和代码之前,我将非常感谢有关如何继续的任何建议或想法。
数据库在CentOS下的mySQL上,有些表是InnoDB,有些是MyISAM。 许多表似乎都有外键。
谢谢!
答案 0 :(得分:7)
我在一个有几百张桌子(接近1k)的地方工作,没有人真正知道系统中发生了什么,公司正在成长和雇用很多。一个人的任务是做一个图表,他自动神奇地创建了一个巨大的平铺海报,其中包含连接各种表格的线条(遍布整个地方)。我不确定他用过什么,几年前就是Unix和Oracle(Linux和开源之前的方式)。他的图表中的表格布局没有真正的押韵或理由。他成功地创建了每张桌子的图表。 “海报”被放在一个公共区域的墙上,看起来很少,但没有人真正使用它,它无法使用,太杂乱,太无组织。结果,我使用MS-Word创建一个包含20个主表的单页图(它经历了几次迭代,因为我“发现”新主表),每个外键都有行,每个表都以逻辑方式定位。我展示了列名,数据类型,可空性,PK和所有FK。我把显示器上的图表放在墙上。最终每个人都想要我的图表副本,包括制作“海报”的人。当我离开那份工作时,他们仍然将我的图表交给新员工。
我建议您像浏览器一样工作,找到关键表并随时映射它们,在发现系统时根据需要制作尽可能多的特定图表。试图自动制作一张巨大的“海报”并不会很好。
答案 1 :(得分:5)
你试过mysql workbench吗? 如果你不介意Windows,你也可以尝试Enterprise Architect
答案 2 :(得分:1)
MySQL Workbench有一些很棒的工具可以从创建脚本进行逆向工程。我没有将它用于这么大的数据库,但你应该检查它。
答案 3 :(得分:0)
IIRC,MS Sql Server有一些不错的实用程序来制作图表,我知道它有很多帮助,你可以添加一个表,它会自动添加所有相关的表。如果您可以将表转换为与MS SQL兼容的sql脚本,这可能有所帮助。
答案 4 :(得分:0)
Navicat 10.1及更高版本可以完成这项工作。使用其模型工具并将数据库导入其中,然后轻松重新排列。打印结果pdf或直接打印到打印机。