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

当关系也有一些信息作为节点时,设计neo4j图的最佳方法是什么,neo4j,spring-data-neo4j,neo4j-ogm,Neo4j,Spring Data Neo4j,Neo4j Ogm,假设我们有个人实体和到目的地实体(如城市)的旅行关系,我们想添加3或4种信息,如交通(类型、车票号码、日期等),这些信息必须是该关系的节点本身 问题是我们如何将其绘制成图形?连接到单个关系的节点不可能超过2个 但是,作为一种变通方法,您可以将关系类型“具体化”为节点标签,并创建额外的关系类型以连接到新标签 例如,如果当前数据模型如下所示: (p:Person)-[:TRIP_TO]->(c:City), (transp:Transporation) 您还希望将每个TRIP\u to关系与

假设我们有个人实体和到目的地实体(如城市)的旅行关系,我们想添加3或4种信息,如交通(类型、车票号码、日期等),这些信息必须是该关系的节点本身


问题是我们如何将其绘制成图形?

连接到单个关系的节点不可能超过2个

但是,作为一种变通方法,您可以将关系类型“具体化”为节点标签,并创建额外的关系类型以连接到新标签

例如,如果当前数据模型如下所示:

(p:Person)-[:TRIP_TO]->(c:City), (transp:Transporation)
您还希望将每个
TRIP\u to
关系与
Transportation
节点关联,您可以通过将
-[:TRIP\u to]->
替换为
-[:TAKES]->(TRIP:TRIP)-[:to]->
来具体化
TRIP\u to
关系,如下所示:

(p)-[:TAKES]->(trip:Trip)-[:TO]->(c)
并添加另一个新的关系类型,以将
Trip
节点连接到相应的
Transportation
节点:

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

不幸的是,关系不能包含节点类型的信息(即属性)。您应该考虑为TRIPS创建节点而不是关系。另一种方法是将运输节点的id存储为trip属性,但不推荐使用。您似乎在说您“必须”将第三个节点(具有
transportation
标签)附加到现有的
trip
关系。因为关系必须有两个端点,所以这是不可能的。你能解释一下为什么你认为“必须”这样做,为什么你不能把交通属性放在
trip
关系中吗?@cybersam我不认为必须这样做,我想知道你是否有多个节点的信息,你想从一开始到其中一个节点建立关系,如何让另一个节点也参与进来。真实单词示例:您要去另一个县,这个节点可能涉及人员、护照、签证、普通人、航空公司、机票、寄宿者、日期,这些都是具有属性的东西,那么如何用它们来绘制到目的地的行程图呢?您的意思是使用中间节点,从该节点我可以与我想要的任何节点建立关系?比如sql?让我检查一下,不管怎样是的,一旦关系变成一个节点,它可以与其他节点有任意数量的关系。