使用 neo4j 的具有视频聊天功能的社交网络

Social network with video chat feature using neo4j

我正在使用 neo4j 构建一个社交网络网络应用程序,朋友用户可以在其中通过视频通话相互交流。每个参与的用户还可以在每次通话结束时提交评论。我构建了图表,使得两个 (:User) 节点彼此之间可以具有 [:FRIEND] 关系。对于特定的视频通话,我计划创建一个 (:VideoCall) 节点(其中包含 roomId 等属性)和从 (:VideoCall) 节点到每个参与的 (:User)[:PARTICIPANT] 关系节点。 [:PARTICIPANT] 关系将有一个 rating 属性 包含用户对该视频通话的评论。如果有大量的用户和视频通话节点,这个模型是否会高效?是否有更好的方法来为此类功能设计数据库?

是的,它应该表现良好。只需确保您拥有要通过索引和约束查找的属性

除了常规用例之外,您还想涵盖哪些用例?

如果视频通话涉及多个用户,并且您想使用 roomId 作为查询条件,这是一个很好的模型,因为这样您可以轻松找到参与特定视频通话的所有用户。

但是,我注意到您提到它是一个社交网络应用程序。所以视频通话很可能只是在两个用户之间进行。如果是这种情况,那么您当前的模型有一个替代方案:将视频通话作为用户之间的边缘:(:user)-[:videocall]->(:user) roomId 等属性可以分配给边缘。此模型可节省内存,因为您的节点较少。