久违后重新访问Neo4j。我已经阅读了很多文章,但仍然发现我有几个问题要让我再去......
前者感觉就像是一个舒适的选择,但在建模实际事实方面感觉并不自然 - 例如:什么称为属性,因为从每个节点的角度来看,FlowIn和FlowOut都没有意义。在这种情况下,我也想知道属性与关系的表现 - 这些值需要更新。
如何以最佳方式完成?每个连接的每个时间帧的关系似乎...... .verbose。表示为节点的时间帧是否有价值?!
感谢您提供任何可能提供的建议。
答案 0 :(得分:1)
虽然你肯定已经考虑过你的问题,但问题有点不清楚。这似乎是关于图数据模型的问题。您想知道如何最好地组织模型来表示复杂的关系。如果您正在尝试跟踪"流程"然后在两个节点之间将权重属性分配给单向边缘。
应仔细考虑双向关系。 Neo4j可以像单向关系一样快速地处理它们。关于使用双向关系的graphaware引用:
Neo4j中的关系可以以相同的速度在两个方向上遍历。而且,方向可以完全忽略。因此,如果一个节点隐含另一个节点,则无需在节点之间创建两个不同的关系。
我相信通过更好地理解Graph数据模型可以缓解您的问题。查看几个不同的模型并了解其原因将有助于理解此时的cypher语法。我建议您阅读智利大学的两位教授的this survey,题为“#Graph;图形数据库模型调查”。" "超节点"第21页上的模型可能对您特别感兴趣,因为它听起来像您正在尝试建模复杂的循环对象。从第二十一页开始;
超节点可用于表示简单(平面)和复杂对象(分层,复合和循环)以及映射和记录。一个关键特性是其固有的封装信息的能力。
希望这些信息可以帮助您模拟复杂的关系。