繁体   English   中英

Neo4j关系设计

[英]Neo4j Relationship design

久违后重温Neo4j。 我已经阅读了很多文章,但是仍然发现我有一些问题可以让我再次前进。

  1. 双向关系我有一个“连接到”类型的场景,其中2个节点相互连接。 实际上,该想法是对一种流进行建模。 但是,双向流动并不总是相同的。 我不确定要使用的最佳方法:1个具有2个属性的关系或2个不同的关系?

前者感觉很舒适,但随后在建模实际事实时就感觉不自然了-例如:该调用什么属性,因为从每个节点的角度看,FlowIn和FlowOut毫无意义。 我还想知道在这种情况下属性与关系的性能-这些值将需要更新。

  1. 表示时间现在,我想更进一步,表示在特定时间或更准确地说在特定时间之间节点之间的流。 因此,在下午2点到下午3点之间,#1和#2之间的流量为x。

应该如何以最佳方式完成此操作? 每个连接的每个时间范围的关系似乎....冗长。 将时间范围表示为节点是否有价值?

  1. 是否有Cypher外的最大流量样品? 对推送重新标记最大流量问题的解决特别感兴趣。

感谢您提供的任何建议。

尽管您已经对问题进行了一定的思考,但这个问题仍然不清楚。 这似乎是关于图数据模型的问题。 您想知道如何最好地组织模型来表示复杂的关系。 如果要跟踪两个节点之间的“流”,则将权重属性分配给单向边。

双向关系应仔细考虑。 Neo4j可以像处理单向关系一样快地对其进行处理。 Graphaware中关于使用双向关系的引文

Neo4j中的关系可以以相同的速度在两个方向上遍历。 而且,方向可以完全忽略。 因此,如果一个节点暗示另一个,则无需在节点之间创建两个不同的关系。

我相信,通过更好地了解Graph数据模型可以缓解您的问题。 查看一些不同的模型并理解其原因,比此时理解密码语法更有帮助。 可能我建议您阅读本次调查由在智利大学教授2人名为“图形数据库模型的调查。” 您可能对第21页的“超节点”模型特别感兴趣,因为这听起来像是您正在尝试对复杂的循环对象建模。 从第二十一页开始;

超节点可用于表示简单(平面)和复杂对象(分层,复合和循环)以及映射和记录。 一个关键功能是其固有的封装信息的能力。

希望这些信息可以帮助您建立复杂的关系。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM