图形数据库建模:我是否应该使用集合节点来避免许多依赖于节点

时间:2014-07-21 08:43:42

标签: graph neo4j graph-databases

我目前正在开发第一个使用Graph数据库(Neo4J)的应用程序。我正在白板上建模我的图形。我和我的同事在讨论我们是否应该引入一个“收集节点”。

我们有类似的东西(Cypher语法,虚构示例):     (停车:停车) - 停车节点     (汽车:汽车) - 汽车节点

显然,停车场可以有多辆汽车,假设它可以有多达10辆汽车。

在这种情况下,引入新节点是否更好:     (carCollection:CarCollection) - 汽车收集节点?

停车场可以拥有一个可以拥有大量汽车的“汽车收集节点”。这应该避免在自己的停放节点上执行简单的查询(假设您要查询可用席位数)以失去性能。 这是一个好主意吗?或者这是假的,你应该按原样对其进行建模,这不会影响性能吗?

如果任何人都可以通过一些图形建模最佳实践提供链接或书籍,那也很棒:)。

提前谢谢。

的Gr Kwinten

1 个答案:

答案 0 :(得分:1)

无论如何,一旦你需要为每辆车提供1mil节点,就无法获得性能增强器。

如果你只是用一辆车查询你的停车节点,它就会像你在汽车收藏中只有一辆汽车一样快。

如果你需要退回所有1百万辆汽车,那么没有增强剂。 (然而,主要问题只是流式传输所有数据的网络连接)。

你可以玩labels,但我建议将数百万的关系直接留给停车节点。但是,如果你能为我们提供一个带有查询的示例场景,那么我们可以想象一下可能会出现