0

我正在寻找从存储在数据库中的结构化数据生成图表的策略或其他起点。制作一个与我的要求非常相似的简化示例:

Input:          DDL SQL to create tables with attributes in a Database.
Desired output: ERD diagram of the tables with connections to each other as svg.

我想要构建的图表类型是ADAPT,但由于我确信没有直接生成 ADAPT 图表的实现,我会对任何可以生成模型(如 BPMN、EPK 或类似的东西)的东西感到满意。ERD 的生成器可能是一个开始,但由于 ADAPT 比 ERD 更复杂,因此需要大量定制。

我目前使用Drupal创建了一个原型,因此该领域的一些东西会很好,但我很高兴有任何可以学习解决核心问题的输入:如何从结构化数据中自动创建图形模型(没有数据或用户交互)元素放置、元素大小等)?

旁注:

  • svg 不是硬性要求(可能是 png 等),但对我来说似乎是最好的选择。
  • 我正在构建的应用程序记录了应该成为模型的要求。
  • 该解决方案需要可集成到 Web 应用程序中。(有某种API)
  • Activiti可能是图表绘制的基础,但我无法找到有关通过 API 而不是 UI 创建图表的信息。
  • Graphviz可能是一个起点,但我还没有看到 ERD 之外的任何工作。
  • 这是一个学生项目,所以预算有限。
4

2 回答 2

1

有许多图表库可用,每个都有其优点和缺点。这在很大程度上取决于您的确切要求。我建议您评估一些替代方案,看看最适合您的方案。

我的想法在商业场景中, 适用于各种平台的yFiles库套件可能是一种选择。从我所见,基于 HTML/JavaScript 的解决方案应该可以很好地满足您的要求:可以很容易地告诉它从各种输入源获取数据,自动创建结构,最重要的是计算图表的布局,以便它可以无需人工安排即可立即查看。您还可以高度自定义库:您可以使项目看起来像“ADAPT”中的项目,自定义用户交互性以便只允许有效的模型更改(如果您需要交互式编辑),当然可以做所有事情以编程方式使用灵活的 Javascript API。

这里有一个很好的例子: Interactive Graph Source

全面披露:我在 yWorks 工作,但在 Stackoverflow 上我不代表我的雇主。

于 2012-11-23T08:41:22.023 回答
0

您可以生成Graphviz的 DOT 语言,然后通过命令行运行 Graphviz 的 DOT.exe 程序,输入一个 DOT 语言文件,输出一个 .svg 文件。这种方法非常简单,因为您不需要通过 API 使用 Graphviz,而只需从您的编程环境中生成文本文件。

不确定这是否对您有帮助;也许只是一般的想法可能是有用的。

不过,更进一步,我在一个开源项目中完成了这项工作,与您在上面具体描述的显着不同之处在于我的项目采用表格(自我描述,结构化)数据而不是 SQL DDL 作为其用户输入. 输出是概念和关系形式的信息,可以以多种方式使用(搜索、操作、图表),其中一种是生成 .svg 输出,显示由各种颜色和标记的箭头互连的各种颜色和形状的实体。.svg 输出是通过将概念和关系转换为适当的 DOT 文件,然后通过命令行运行 Graphviz,然后在 .svg 输出上启动 Firefox 来完成的。与您需要的有很多不同,但布局完全由 Graphviz 处理。

于 2012-12-05T02:07:08.550 回答