当关系也有一些信息要成为节点时,设计 neo4j 图的最佳方法是什么

what is best way to design neo4j graph when relation also have some information to be node

假设我们有 person 实体和 trip 关系到目的地实体,比如 city,我们想添加 3 或 4 种信息,比如 transportation( type , ticket number , date , .. ) ,必须是节点本身这种关系..

问题是我们如何绘制图表?

不可能有超过 2 个节点连接到一个关系。

但是,作为解决方法,您可以 "reify" 将关系类型作为节点标签,并创建额外的关系类型以连接到该新标签。

例如,如果您当前的数据模型如下:

(p:Person)-[:TRIP_TO]->(c:City), (transp:Transporation)

并且您还想将每个 TRIP_TO 关系与一个 Transportation 节点相关联,您可以通过将 -[:TRIP_TO]-> 替换为 -[:TAKES]->(trip:Trip)-[:TO]-> 来具体化 TRIP_TO 关系,像这样:

(p)-[:TAKES]->(trip:Trip)-[:TO]->(c)

并添加另一种新关系类型以将 Trip 节点连接到适当的 Transportation 节点:

(trip)-[:USES]->(transp)