维护与节点的不同关系

Maintaining distinct relationships with nodes

我正在开发一个新的 Web 项目并使用 neo4j 作为数据库,因此我可以使用关系并创建建议。这是一个简单的约会网站,供不约会的人使用,这样他们就可以闲逛并谈论他们的职业。我开始对数据建模并有一个人节点。我想要关系 'met_with' 来跟踪人们何时出去玩。我在 met_with 关系上有 属性 'meet_date' 和 'rating',因此我可以跟踪人们何时外出以及他们对视频群聊的看法。

我遇到的问题是我还想用 'Location' 节点记录他们在哪里闲逛,但我想存储 2 个人在那里相遇的时间。 (即 Steve 和 Mary 于 2015 年 8 月 28 日在 Java House 相遇)我假设位置也是一个节点,但我不确定如何追踪哪两个人在哪里相遇。我知道我可以在 Person 和 Location 之间建立关系 'met_at',但我如何才能将它与两个人联系起来。我不希望我在一个人和一个地点之间有 6 种关系(如果那个人碰巧喜欢那个地方见面)并且每次都无法说出他们遇到了谁。

在关系数据库中,我可以有一个连接 table 来存储 2 个人的 ID 和位置 ID 以及会议日期,但我当然试图摆脱连接思维模式这个项目。

感谢任何人可以提供的任何建议!

是的,所以你的问题是告诉你一些事情。显然,会议的概念在这里很重要,并且是您领域中的优先实体。

所以我会创建新的 "Meeting" 节点,这些节点可以关联两个人,也可以关联一个位置。此外,这开辟了新的可能性,例如将您的会议节点连接到时间树,甚至主题,...