database - neo4j 图数据库的效率

标签 database neo4j graph-databases

我有一个要保存的对象事件位置。我想有两种方法可以做到这一点: 1.创建事件节点并将其连接到位置节点并保存位置 2.保存Event节点上的位置。

考虑到将来我有兴趣提取在某个地方发生的所有事件的信息。 最有效的方法是什么?

我还有一个关于有效的问题。我有 2 个用户:移动应用程序用户和网络用户。我正在思考保存信息的有效方法。我也在这里思考两种方法: 1.将所有用户的数据保存在一个节点上,并添加到app用户标签mobile上 2.将所有用户的数据保存在一个节点中,并将其连接到仅保存设备类型的节点。

考虑到将来我有兴趣提取所有使用 IOS/Android 的用户的信息。 最有效的方法是什么?

最佳答案

这取决于您想如何处理位置信息。您可能使用 Location 节点(从而在 EventLocation 之间建立关系)的一些原因:

  • 您想要某个位置的属性
  • 您正在另一个上下文中使用位置,并且希望能够将所有内容链接在一起
  • 在您的应用程序中,位置对您来说更像是一个实体,而不仅仅是Event的属性

但是,如果您只有纬度/经度或位置名称,那么您就更倾向于在Event 上拥有属性。如果您要查询属性,请确保您有一个索引(该索引也适用于您想要在 Location 节点上查询的任何属性)。

关于用户:如果您要存储两组用户,您可能会感到头疼。我将拥有一组用户并使用诸如 logged_in_with_android 之类的属性。

关于database - neo4j 图数据库的效率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33521758/

相关文章:

php - 在日期之间循环并显示每个日期的记录

marklogic - Marklogic 如何做到一致性和可用性?

mongodb - 什么NoSQL数据库对复杂的多对多关系有好处?

optimization - neo4j广度优先遍历内存问题

architecture - 一起使用 MySQL 和 Neo4j 是个好主意吗?

neo4j - 是否可以在 Neo4j/OrientDB 中限制边多重性?

java - MysqlConnectionPoolDataSource - 无法使用 jdbc 插入到 mysql 数据库?

sql - PostgreSQL,关于 FORCE NOT NULL

java - 在 Spring Data Neo4j 中实现延迟加载

java - 无法使用 Java 中的 Cypher 查询在 Neo4J 数据库中的两个节点之间创建关系