我目前正在开发第一个使用Graph数据库(Neo4J)的应用程序。我正在白板上建模我的图形。我和我的同事在讨论我们是否应该引入一个“收集节点”。
我们有类似的东西(Cypher语法,虚构示例): (停车:停车) - 停车节点 (汽车:汽车) - 汽车节点
显然,停车场可以有多辆汽车,假设它可以有多达10辆汽车。
在这种情况下,引入新节点是否更好: (carCollection:CarCollection) - 汽车收集节点?
停车场可以拥有一个可以拥有大量汽车的“汽车收集节点”。这应该避免在自己的停放节点上执行简单的查询(假设您要查询可用席位数)以失去性能。 这是一个好主意吗?或者这是假的,你应该按原样对其进行建模,这不会影响性能吗?
如果任何人都可以通过一些图形建模最佳实践提供链接或书籍,那也很棒:)。
提前谢谢。的Gr Kwinten
答案 0 :(得分:1)
无论如何,一旦你需要为每辆车提供1mil节点,就无法获得性能增强器。
如果你只是用一辆车查询你的停车节点,它就会像你在汽车收藏中只有一辆汽车一样快。
如果你需要退回所有1百万辆汽车,那么没有增强剂。 (然而,主要问题只是流式传输所有数据的网络连接)。
你可以玩labels
,但我建议将数百万的关系直接留给停车节点。但是,如果你能为我们提供一个带有查询的示例场景,那么我们可以想象一下可能会出现