代码之家  ›  专栏  ›  技术社区  ›  Carmageddon

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

  •  3
  • Carmageddon  · 技术社区  · 14 年前

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

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

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

    我试图用蟾蜍拖走所有的桌子——它坠毁了:) 第二次尝试时,我拖动了表A-N,很长一段时间后,m-z表成功。

    我甚至设法调整了它们的大小,安排并将erd保存到文件中。

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

    关于如何打印这个巨大的ERD有什么建议吗?或者另一种方法?表名似乎不需要解释,所以我不能(老实说,不是真的想要)超过800多张表,希望我不要错过我需要的,或部分。

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

    数据库在mysql上的centos下,有些表是innodb,有些是myisam。 许多桌子上似乎都有外键。

    谢谢!

    5 回复  |  直到 11 年前
        1
  •  7
  •   KM.    14 年前

    我在一个有几百张桌子(接近1公里)的地方工作,没有人真正知道系统中发生了什么,公司在成长,雇佣了很多人。一个人的任务是做一个图表,他自动神奇地创建了一个巨大的瓷砖海报,其中包含了每一张桌子,每一张桌子都有连接不同桌子的线条(到处都是)。我不知道他用的是什么,那是几年前的Unix和Oracle(在Linux和开源之前)。他的图表中的表格布局并没有真正的押韵或理由。他成功地创建了每张表的图表。“海报”被贴在一个公共区域的墙上,有了一些外观,但从来没有人真正使用过它,它是无用的,太杂乱,太无序。因此,我使用MS Word创建了一个单页图表,其中包含20个主表(当我“发现”新的主表时,它经过了几次迭代),每个外键和每个表的行以逻辑方式定位。我显示了列名、数据类型、空性、pk和所有fk。我把我的图表贴在墙上的显示器旁边。最终每个人都想要一份我的图表,包括制作“海报”的人。当我离开那份工作时,他们仍在给新员工提供我的图表。

    我建议您像一个探险家一样工作,找到关键表并在进行中映射它们,在发现系统时根据需要制作尽可能多的特定图表。尝试自动制作一个巨大的“海报”不会很好地工作。

        2
  •  5
  •   Balint Pato    14 年前

    你试过了吗? mysql workbench ? 如果你不介意窗户,你可以试试。 Enterprise Architect

        3
  •  1
  •   Klark    14 年前

    MySQLWorkbench有一些很好的工具可以从创建脚本进行逆向工程。我没有把它用在这么大的数据库上,但你应该检查一下。

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

        4
  •  0
  •   ceteras    14 年前

    IIRC,MS SQL Server有一些很好的工具来制作图表,我知道它帮助很大,您可以添加一个表,它会自动添加所有相关的表。如果可以将表转换为与MS SQL兼容的SQL脚本,这可能会有所帮助。

        5
  •  0
  •   Aziz Haddad    11 年前

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