0

我正在考虑使用 Java 对象创建类似于树或网络的指南,并将其映射到数据库中。每个步骤之后都会导致另一个步骤,依此类推,以下问题/任务/任何取决于前一个动作。(见图)应该可以创建循环,例如重复以前的一些步骤。

我应该更喜欢什么数据库?标准的关系型,连接一个表可能与自身(外键 - > 主键)连接节点或一些基于文档(基于图形)如 OrientDB,创建真正的树?像db4o这样的面向对象数据库呢?

什么会有更好的性能和/或更容易实现?

提前致谢。


其他想法:我可能会在一个节点(步骤)中添加不同的操作(调用 Web 服务等)和/或媒体(文本、图像、视频),从而导致其他步骤,可能会回到以前的步骤等等。


在此处输入图像描述

4

1 回答 1

1

我认为您在图形数据库方面走在了正确的轨道上。OrientDB 看起来会很好用。当然,我也会抛弃 Neo4j,它应该同样有效。

在我看来,关系数据库很容易被抛弃,因为它不能很好地映射到问题空间。您可能能够创建良好的结构来存储关系等,但查询将是可怕和复杂的。

我要问的最重要的问题是,“查询语言是什么样的?” 存储数据通常并不难。您可以很好地设计结构和加载数据。

但是,当您需要查询和考虑您的数据时……查询语言是否易于推理?它是否代表了对您很重要的概念?

对于图表,我真的很喜欢 Gremlin。 https://github.com/thinkaurelius/titan/wiki/Gremlin-Query-Language

它具有用于传达图形概念的非常自然的语法。我会检查它作为 OrientDB 的替代方案。

于 2013-06-20T23:42:11.907 回答