通过对数据库进行逆向工程生成 ER 图

发布于 2024-07-07 04:15:54 字数 1560 浏览 6 评论 0原文

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

何以心动 2024-07-14 04:15:54

Dot 是 graphviz 包的一部分,这是一个非常酷/有用的工具。 当然,您需要一些东西来生成 graphviz 的点文件。 我过去使用过 SchemaSpy 一两次,并且只要您定义了关系,它就可以很好地工作在数据库中。

Dot is part of the graphviz package, which is a pretty damn cool/useful tool. Of course, you'll need something to generate the dot files for graphviz. I've used SchemaSpy once or twice in the past, and it works pretty well, provided you have the relationships defined in the database.

一个人的旅程 2024-07-14 04:15:54

Microsoft Visio 可以轻松做到这一点。

Microsoft Visio will easily do this.

浪推晚风 2024-07-14 04:15:54

至少对于 Oracle,我运行此查询或要求 DBA 运行它并向我发送结果。 结果可以直接复制到文本文件中,由 Graphviz 的工具进行解释,从而生成数据库图表。

SELECT '"' || Source.TABLE_NAME || '" -> "' 
           || Destiny.TABLE_NAME || '";' AS For_GraphViz
FROM dba_constraints Source
JOIN dba_constraints Destiny
ON Source.owner='my_db_owner' AND Destiny.owner='my_db_owner'
AND Source.CONSTRAINT_TYPE='R'
-- theoretically this validation should be redundant
-- AND Destiny.Constraint_type = 'P'
AND Source.R_CONSTRAINT_NAME = Destiny.CONSTRAINT_NAME
ORDER BY Source.TABLE_NAME, Source.CONSTRAINT_TYPE, Source.CONSTRAINT_NAME
    , Source.R_CONSTRAINT_NAME, Source.INDEX_NAME;

对于 SQL Server 可以轻松创建类似的查询,不了解 MySQL、PostgreSQL 等。

At least for Oracle I run this query or ask the DBA to run it and send me the results. Results can be copied directly to a text file to be interpreted by Graphviz's tools, resulting in a database diagram.

SELECT '"' || Source.TABLE_NAME || '" -> "' 
           || Destiny.TABLE_NAME || '";' AS For_GraphViz
FROM dba_constraints Source
JOIN dba_constraints Destiny
ON Source.owner='my_db_owner' AND Destiny.owner='my_db_owner'
AND Source.CONSTRAINT_TYPE='R'
-- theoretically this validation should be redundant
-- AND Destiny.Constraint_type = 'P'
AND Source.R_CONSTRAINT_NAME = Destiny.CONSTRAINT_NAME
ORDER BY Source.TABLE_NAME, Source.CONSTRAINT_TYPE, Source.CONSTRAINT_NAME
    , Source.R_CONSTRAINT_NAME, Source.INDEX_NAME;

A similar query can be created easily for SQL Server, don't know about MySQL, PostgreSQL et al.

绝對不後悔。 2024-07-14 04:15:54

Dot 是多平台的,可能很有用。

Dot is multiplatform and may be useful.

孤独患者 2024-07-14 04:15:54

DBVisualizer 也是一个免费且不错的替代方案。

DBVisualizer is also a free and nice alternative.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文