Neo4J关系中的属性有什么用?

时间:2015-10-10 15:03:59

标签: neo4j

我担心我没有从Neo4J的关系中获得全部收益。虽然我们使用它们来关联两个节点(当然),但我们很少在关系中添加属性,我觉得我们错过了更大的图景。

考虑一个有EVENT并受影响的人的案例。我们希望所有人都确认他们已被告知此事件。

这是我们的工作,我认为这不是很好:

(e:EVENT)-[:NOTIFICATION]->(:EVENT_STATUS)-[:AFFECTED]->(a:PERSON)

现在情况并非如此糟糕,因为我们需要EVENT,而且我们已经拥有了PERSON。所以我们正在添加连接它们的东西。有用。但是,EVENT_STATUS的唯一目的是跟踪通知日期和PERSON的确认信息。事实是,感觉就像我们正在实现关系数据库结构。

将通知日期和PERSON确认添加到关系中会是错误/自杀吗?

(e:EVENT)-[:INFORMED {notification_date: 123123123,
                      confirmation_date: 123123999,
                      confirmation_type: 'ATTENDING'}]->(a:PERSON)

请帮助我理解关系中属性的目的

编辑 - 英语......是一项技能。

1 个答案:

答案 0 :(得分:1)

您提出的解决方案很好,因为您正在跟踪有关2个节点之间特定类型关系的不同信息。这正是关系属性的用途。

您无需像现在一样添加额外的关系和节点。您不仅浪费资源,而且还会使您的查询变得不必要地复杂。