【问题标题】:How to model stats in neo4j如何在 neo4j 中建模统计数据
【发布时间】:2017-05-26 05:43:09
【问题描述】:

我正在开始我的第一个 neo4j 项目。我想创建一个可以为您提供有关足球比赛的统计信息的应用程序。我想出了这个模型,我想看看你对它的看法。

在我看来,这样做——每个统计数据都是一个节点——我可以很容易地回答诸如谁助攻更多之类的问题。或者每个团队的总体统计数据是什么。

我的问题是关于规模的。这个规模如何?球队和球员最终会有很多 stat_of 类型的关系。

【问题讨论】:

    标签: neo4j


    【解决方案1】:

    事实上,随着统计数据的增加和玩的游戏越来越多,您可能会遇到麻烦,因为您将要搜索基于多个维度的统计数据,并且最终可能需要一些重要的过滤得到你想要的所有尺寸。

    例如,有一个 similar question 具有类似的模型和要求:找出最近 5 场比赛中进球最多的前 5 名球员。

    这需要匹配每个球员的最后 5 场比赛(通过他们的团队节点和排序),然后匹配最后 5 场比赛的目标,并将每个球员的总和。

    因此,为了加快速度,您可能希望在模型中添加中间节点,以简化这些遍历。

    例如,每个球队的每个球员的 :PlayerStats 节点和与目标和助攻有关系的比赛(如果您想继续保持从 :Goal 和 :Assist 节点到 :Player 和:团队节点)。虽然它使模型有点复杂,并且需要更多相邻节点之间的关系,但它可以加快某些查询的遍历,因为它可以更轻松地对每个玩家、团队和游戏的统计数据进行分组,从而避免遍历具有不相关维度的统计数据。

    我还建议使用 :ASSISTED 和 :SCORED 来处理与相关节点的关系,而不是 :STAT_OF,因为这样可以让您从节点使用 degrees of relationships 进行查询,而不必为某些查询扩展到节点。

    还可能值得考虑删除 :Assist 节点并将它们替换为仅与相关 :Goals 的 :ASSISTED 关系。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-10
      • 1970-01-01
      • 2017-09-18
      • 1970-01-01
      • 1970-01-01
      • 2014-06-06
      • 1970-01-01
      • 2018-04-19
      相关资源
      最近更新 更多