使用 neo4j 的具有视频聊天功能的社交网络
Social network with video chat feature using neo4j
我正在使用 neo4j 构建一个社交网络网络应用程序,朋友用户可以在其中通过视频通话相互交流。每个参与的用户还可以在每次通话结束时提交评论。我构建了图表,使得两个 (:User)
节点彼此之间可以具有 [:FRIEND]
关系。对于特定的视频通话,我计划创建一个 (:VideoCall)
节点(其中包含 roomId 等属性)和从 (:VideoCall)
节点到每个参与的 (:User)
的 [:PARTICIPANT]
关系节点。 [:PARTICIPANT]
关系将有一个 rating
属性 包含用户对该视频通话的评论。如果有大量的用户和视频通话节点,这个模型是否会高效?是否有更好的方法来为此类功能设计数据库?
是的,它应该表现良好。只需确保您拥有要通过索引和约束查找的属性
除了常规用例之外,您还想涵盖哪些用例?
如果视频通话涉及多个用户,并且您想使用 roomId 作为查询条件,这是一个很好的模型,因为这样您可以轻松找到参与特定视频通话的所有用户。
但是,我注意到您提到它是一个社交网络应用程序。所以视频通话很可能只是在两个用户之间进行。如果是这种情况,那么您当前的模型有一个替代方案:将视频通话作为用户之间的边缘:(:user)-[:videocall]->(:user)
roomId 等属性可以分配给边缘。此模型可节省内存,因为您的节点较少。
我正在使用 neo4j 构建一个社交网络网络应用程序,朋友用户可以在其中通过视频通话相互交流。每个参与的用户还可以在每次通话结束时提交评论。我构建了图表,使得两个 (:User)
节点彼此之间可以具有 [:FRIEND]
关系。对于特定的视频通话,我计划创建一个 (:VideoCall)
节点(其中包含 roomId 等属性)和从 (:VideoCall)
节点到每个参与的 (:User)
的 [:PARTICIPANT]
关系节点。 [:PARTICIPANT]
关系将有一个 rating
属性 包含用户对该视频通话的评论。如果有大量的用户和视频通话节点,这个模型是否会高效?是否有更好的方法来为此类功能设计数据库?
是的,它应该表现良好。只需确保您拥有要通过索引和约束查找的属性
除了常规用例之外,您还想涵盖哪些用例?
如果视频通话涉及多个用户,并且您想使用 roomId 作为查询条件,这是一个很好的模型,因为这样您可以轻松找到参与特定视频通话的所有用户。
但是,我注意到您提到它是一个社交网络应用程序。所以视频通话很可能只是在两个用户之间进行。如果是这种情况,那么您当前的模型有一个替代方案:将视频通话作为用户之间的边缘:(:user)-[:videocall]->(:user)
roomId 等属性可以分配给边缘。此模型可节省内存,因为您的节点较少。