与足球比赛有关的图表数据建模辅助

时间:2013-07-06 20:30:24

标签: graph neo4j data-modeling neo4jphp

我正在尝试模拟足球比赛以及在其中发挥作用的裁判和球队。我想根据比赛,裁判和球员创建节点,我不清楚最好的模型建模方法吗?我应该在城市,比赛之后对其进行建模吗?我是否创建了根节点Id等?

我稍后会寻找的信息类似于:

1)。显示特定裁判的所有比赛(可能在多个城市) 2)。显示裁判工作和主队赢得的所有比赛 3)。向所有裁判显示主队获胜次数最多? 4)。在特定城市展示最活跃的裁判

正如你所看到的那样,有各种各样的问题,对于新的人来说,这可能有点压倒性。当我正在阅读一些书籍时,我想看看是否有专家可以在上面的场景中帮助我。再次不确定我是否需要一个连接所有城市和裁判和匹配的根节点,或者只是保持独立。非常感谢您的反馈。

2 个答案:

答案 0 :(得分:1)

目前似乎满足您发布的查询的可能模型之一:

(球队) - [:播放] - GT;(匹配度)

(匹配) - [:HAS_REFEREE] - GT;(裁判)

(匹配) - [:PLAYED_IN] - GT;(城市)

PLAYS关系可以有一个属性来表明球队是否是主队。您还可以在PLAYS关系中拥有一个属性,以指示该团队是否获胜。或者,如果获胜是您正在寻找的重要部分,您可以创建额外的关系,例如 (团队) - [:WON] - >(匹配)(尽管那时你需要考虑如何模型绘制。两支球队中任何一支球队缺少WON关系可能表示平局可能)。 / p>

1)特定裁判的所有比赛:从裁判开始,遍历比赛到城市。您可以索引裁判的一些独特属性,以便能够快速查找他

2)所有比赛裁判的工作和主队赢了:从裁判开始,找到他所有的比赛,过滤WON关系/财产和主队财产

3)主队获胜次数最多的所有裁判:与上述相同,从所有裁判开始

4)最活跃的城市裁判:从城市开始,查找所有比赛及其裁判

根据您想要回答的更多问题(尤其是主队属性,赢/输关系或属性等),您可能会稍微改变一下。

我认为你根本不需要根节点。如果你想找到所有匹配/城市/裁判等,你可以索引所有匹配/城市/裁判等

答案 1 :(得分:1)

我已经完成了一些足球/足球比赛的模型,可能很有趣 - http://staging.thinkingingraphs.com/

与Luanne所说的大致相同,尽管我有特定的关系类型,表明哪支球队在主场和客场比赛。我一直在编写我在此处构建模型时发现的内容 - http://www.markhneedham.com/blog/tag/neo4j/page/2/