我们有一个由Parallels构建的系统,它依赖于一个巨大的(800+)表来维护一切。
我需要学习这个系统,以便能够编写查询来检索数据,以便根据各种需求生成报告。
显然,我很难分离出哪些表格当前与手头的任务相关,所以我认为最好的方法是,为整个表格系统生成并打印多页的ERD。
我尝试使用TOAD拖拽所有的表格--它崩溃了:)在第二次尝试时,我拖拽了表格A-N,一段(长)时间后,M-Z表格成功。
我甚至设法让他们都调整大小,安排和保存到文件中的ERD。
然而,当我进入打印或预览时,打印子进程崩溃了。
对如何打印这份大量的ERD有什么建议吗?或者是另一种方法?表名似乎并不是不言自明的,所以我不能(老实说,也不是真的想要)复习一下800+表,希望我不会错过我需要的东西,或者我需要的部分。
在我真正开始编写脚本和代码之前,我将非常感谢任何关于如何继续进行的建议或想法。
数据库在CentOS下的mySQL上,有的是InnoDB表,有的是MyISAM表。许多表似乎都有外键。
谢谢!
发布于 2010-06-22 20:12:55
我在一个有几百张桌子(接近1000张)的地方工作,没有人真正知道系统里发生了什么,公司正在发展壮大,招聘了很多人。一个人的任务是绘制一个图表,他自动魔术地创建了一个巨大的平铺海报,其中包含每一张桌子和连接不同桌子的线(遍及所有地方)。我不确定他用的是什么,那是几年前的Unix和Oracle (远在Linux和开源之前)。在他的图表中,表格的布局没有真正的韵律或理由。他已经成功地创建了每个表的图表。“海报”被贴在公共区域的墙上,看了几眼,但从来没有人真正使用过它,它无法使用,太杂乱,太杂乱。因此,我使用MS-Word创建了一个包含20个主表的单页图(当我“发现”新的主表时,它经历了几次迭代),每个外键和每个表都以逻辑方式定位。我显示了列名、数据类型、可空性、主键和所有FK。我把我的图表挂在显示器旁边的墙上。最终,每个人都想要一份我的图表,包括制作“海报”的人。当我离开那份工作时,他们还在给新员工提供我的图表。
我建议你像一个探索者一样工作,找到密钥表,并在你发现系统的过程中映射它们,根据需要制作尽可能多的具体图表。试图自动制作一个巨大的“海报”不会有很好的效果。
发布于 2010-06-22 19:39:25
你试过mysql workbench吗?如果你不介意windows,你也可以试试Enterprise Architect
发布于 2010-06-22 19:40:46
MySQL工作台提供了一些用于从创建脚本进行逆向工程的强大工具。我还没有在这么大的数据库中使用过它,但是你应该检查一下。
链接:http://wb.mysql.com/
https://stackoverflow.com/questions/3092668
复制相似问题