Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
建模实践-Neo4j_Neo4j_Modeling - Fatal编程技术网

建模实践-Neo4j

建模实践-Neo4j,neo4j,modeling,Neo4j,Modeling,我有一个包含一堆“杂志”类型节点的图。每个杂志都有一些属性和关系。我想在图表中添加数据,说明特定目标群体(即“男性”或“女性”)阅读杂志的程度。显然,即使是针对“女性”的杂志,有时也会被“男性”阅读,这样我就可以在关系中使用属性(可能是0到1之间的数字) 我的问题是,这是否是一种良好的设计实践,因为节点“男”和“女”与图中的每个杂志节点都有关系。另一种选择是在杂志上有一个保存该值的属性,但这对于查询来说不太理想 图中的节点基本上是必须与之建立关系的,是可以的,还是只是为了详细说明?如果是这样的话

我有一个包含一堆“杂志”类型节点的图。每个杂志都有一些属性和关系。我想在图表中添加数据,说明特定目标群体(即“男性”或“女性”)阅读杂志的程度。显然,即使是针对“女性”的杂志,有时也会被“男性”阅读,这样我就可以在关系中使用属性(可能是0到1之间的数字)

我的问题是,这是否是一种良好的设计实践,因为节点“男”和“女”与图中的每个杂志节点都有关系。另一种选择是在杂志上有一个保存该值的属性,但这对于查询来说不太理想


图中的节点基本上是必须与之建立关系的,是可以的,还是只是为了详细说明?如果是这样的话,有什么更好的方法呢?

我认为这取决于您需要如何查询数据。根据我对Neo4j的体验,您希望避免使用具有许多边的超级节点。但是“很多”是非常主观的,并且可能根据服务器的规格而有所不同。但总的来说,在您的用例中,我认为属性更有意义。也许如果您提供一些示例查询,我们可以比较两种选择。

我认为这取决于您需要如何查询数据。根据我对Neo4j的体验,您希望避免使用具有许多边的超级节点。但是“很多”是非常主观的,并且可能根据服务器的规格而有所不同。但总的来说,在您的用例中,我认为属性更有意义。也许如果您提供一些示例查询,我们可以比较两个备选方案。

因为您正好有两个目标群体,这两个群体的关系数量将是(#of magazine/2)(从您的问题来看,一本杂志似乎只有一个目标群体,而不是更多)。你还没有指出你的图表有多大——也许它足够小,不会导致两个目标群体变得密集

无论如何,问题是,你打算如何处理目标群体和读者%?您的查询是按它们过滤还是对照它们进行比较?如果不是,并且这些只是您希望捕获的属性,那么答案很简单,应该将它们建模为杂志节点上的属性


如果通过这些属性进行了大量的主要查询,那么可以为该属性编制索引。每个目标组单独的节点只有在您有两个以上的值时才有价值,杂志可以针对多个组,它们与多个杂志相关,并且它们不会像@NonameCurious指出的那样成为超级节点。

因为您正好有两个目标组,所以这两个目标组的关系数将是(#of magazine/2)(从你的问题来看,一本杂志似乎只有一个目标群体,而不是更多)。你没有指出你的图表有多大——也许它足够小,不会导致两个目标群体密集

在任何情况下,问题都是,你打算对目标群体和读者%做什么?你的查询是按他们过滤还是对照他们进行比较?如果不是,并且这些只是你希望捕获的属性,那么答案很简单,它们应该建模为杂志节点上的属性

如果通过这些属性有大量的主要查询,则可以对该属性进行索引。只有当您有两个以上的值时,每个目标组的单独节点才有价值。杂志可以针对多个组,它们与多个杂志相关,并且不会成为超级节点@NonameCurious他指出