我们的方案涉及一个包含用户和视频的图形数据库。用户可以对视频执行各种无处不在的动作,例如加载,暂停,播放等。每个动作都有一个表示为long的关联时间戳。所以基本上是这样的:
(u:User {Name: "user 1")-[:PLAYS {ts: 1}]->(v:Video {Name: "video 1"})
(u:User {Name: "user 1"})-[:PAUSE {ts: 2}]->(v:Video {Name: "video 1"})
(u:User {Name: "user 1")-[:PLAYS {ts: 3}]->(v:Video {Name: "video 1"})
(时间戳显然是一个大得多的数字,但出于演示目的,它表示为序列号)
在我们的场景中发生的是,在许多用例中,我们生成了很多这些关系的副本。有没有一种方法可以通过将时间戳压缩为列表或数组来折叠关系?在上面的示例中,也许我们可以将PLAYS与ts [1,3]作为列表或数组属性折叠为一种关系?对于这种情况,这甚至是首选方法吗?