我正在考虑使用Java对象创建类似树或网络的指南,并将其映射到数据库中。 在每个步骤之后导致另一个等等,以下问题/任务/取决于前一个动作。 (见图)应该可以为e创建周期。 G。重复一些以前的步骤。
我更喜欢哪个数据库?标准关系,连接表可能与自身(外键 - >主键)连接节点或一些基于文档(基于图形),如OrientDB,创建真正的树?那些面向对象的数据库如 db4o ?
什么会有更好的性能和/或更容易实现?
提前致谢。
其他想法: 我可能会向一个节点添加不同的操作(调用web服务,无论如何)和/或媒体(文本,图像,视频)(步骤),导致其他步骤,可能会回到以前的步骤等等。
答案 0 :(得分:1)
我认为你正在使用图形数据库。 OrientDB看起来效果很好。当然,我也会抛弃Neo4j,它应该同样好用。
我认为关系数据库很容易被删掉,因为它不能很好地映射到问题空间。您可能能够创建良好的结构来存储关系等,但查询将是可怕的和复杂的。
我要问的最重要的问题是,“查询语言是什么样的?”存储数据通常并不难。您可以设计结构并加载数据。
当你需要查询和思考你的数据时......查询语言是否易于推理?它代表了对您来说很重要的概念吗?
对于图表,我真的很喜欢Gremlin。 https://github.com/thinkaurelius/titan/wiki/Gremlin-Query-Language
它具有非常自然的语法来传达图形概念。我会把它作为OrientDB的替代品。