在数据库中存储图形

时间:2014-09-17 11:08:53

标签: java xml eclipse graph hsqldb

我在我的学生工作中处理一个项目,其中我使用yfiles作为库来构建自定义图形和图标,所有这些都在java中使用eclipse作为IDE。

计划是使用嵌入式数据库来保存创建的用户文件,这里我怀疑将是如何实现这一目标的最佳方法。

他们有一个关于如何根据存储在数据库中的数据创建图形的示例,该库支持多个数据库引擎,包括mysql,hsqldb,db1,oracle,derby甚至CSV-JDBC。现在在他们的文件中没有任何例子或任何指示将图表存储到数据库的信息是可能的,我想问一下之前使用过这个库的人是否知道如何从图表中获取信息(包括图标)和形状)存储在任何这些数据库引擎中。

此库创建的文件名为graphml,基本上是xml文件。

我的想法是将xml作为blob存储在数据库中并在需要时检索它,但是因为他们已经从db中的信息创建图表的演示我想在这里询问知道这个库的人关于在不使用blob字段存储整个xml文件的情况下执行保存db中元素的相反过程。

我将非常感谢这个案件的任何帮助,如果不是很清楚我会道歉,随便提出任何问题。

1 个答案:

答案 0 :(得分:1)

您可以将关系数据库中的图形存储为节点和边。一个表包含节点列表,另一个表包含边列表。如果图表是加权的,则每个边缘也具有权重列。在下面的示例中,定义了具有4个节点和4个边的简单图。如果指向图形,则每个边缘从第一列中的节点指向第二列中的节点。

NODES_TABLE

node1
node2
node3
node4
...

EDGES_TABLE

node1,node2
node2,node3
node3,node4
node4,node1
...