database - 存储聊天消息图形数据库 neo4j 的最佳方式

标签 database neo4j graph-databases

我将使用 neo4j 实现聊天应用程序。我将每条消息存储为图中的一个节点,但这可能会产生数十亿个节点。可以吗?

最佳答案

图数据库是存储数据之间的联系。它适用于它设计的案例。您提到的聊天应用程序不是图形数据库的正确用例。或许你可以用图数据库来存储用户的好友关系,这对图数据库来说真的很好。但是消息是某种日志样式数据。它不是数据之间的关系。对于聊天消息,日期信息比关系更重要。因此,我认为您可以使用另一个 DBMS 来存储聊天消息而不是图形数据库。

另一种选择是使用支持多种数据模型的混合数据库。这些 DBMS 之一是 AgensGraph ( https://github.com/bitnine-oss/agens-graph )。它提供了图形数据库功能,包括基于关系数据库 PostgreSQL 的 Cypher 支持。因此,您可以将用户的关系存储在图形对象中,将用户的聊天消息存储在关系表中。因此使用 AgensGraph,您可以根据数据的属性优化存储。

关于database - 存储聊天消息图形数据库 neo4j 的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41181728/

相关文章:

neo4j - 使用 Cypher (Neo4j) 查询时 -、-> 和 --> 之间有什么区别

java - Neo4J Web 应用程序

sql - OrientDB 中的 INSERT 和 CREATE VERTEX 有什么区别?

c# - 当一行的删除按钮被点击时整个gridview变得不可见

mysql - 创建表失败,即使我检查了语法错误

php - 带播放列表的视频数据库的数据库设计

neo4j查询后java进程不会停止

neo4j - 你可以在 Neo4j 中使用数字来表示关系类型吗?

ibm-cloud - BlueMix 中的 IBM Graph 出现 "POST is not allowed"错误

java - 用java从Oracle数据库中读取阿拉伯语数据