0

我想将图形数据库用于跟踪给定运动(例如排球)的球员、比赛、联赛的 Web 应用程序。下面是我想出的第一级模型。我想支持此 Web 应用程序的以下统计信息

播放器

  1. 显示一名球员参加的所有联赛。
  2. 显示每个联赛中一名球员参加的所有比赛。
  3. 球员的当前球队和他以前的球队。
  4. 球员担任队长的次数以及他担任队长的所有联赛。

团队

  1. 一支球队参加的所有联赛。
  2. 球队有多少次是赢家或亚军。

注意:右键单击图像并在新选项卡中打开它以查看原始图像。

在此处输入图像描述

4

1 回答 1

1

您的模型看起来不错,但是在查看了您的用例之后,我有一些问题/建议:

询问

我将在 Cypher 中给出这些,因为它最容易以这种格式显示。

播放器

显示一名球员参加的所有联赛。

START player=node:Player('indexForPlayer')
MATCH player-[PLAYED]->match-[PART_OF]->league
RETURN league

显示每个联赛中一名球员参加的所有比赛。

START player=node:Player('indexForPlayer')
MATCH player-[PLAYED]->match-[PART_OF]->league
RETURN match, collect(league)

球员的当前球队和他以前的球队。

START player=node:Player('indexForPlayer')
MATCH player-[BELONGED_TO]->team
RETURN team

球员担任队长的次数以及他担任队长的所有联赛。

How do you determine if they were a captain of a league?

团队 团队获得胜利者或跑步者的次数。 你可能想把它当作一种关系,比如(match)-[WINNER]->(team)这样来找出你的团队有多少胜利,你所要做的就是计算这种WINNER关系。

数据模型

将属性添加到Match播放日期的节点。我对运动不熟悉,但是如果他们可以在一年内交换球队,那么 Year 可能还不够,但是Neo4j实际上并没有很好的处理时间的方法,除了 'seconds since epoch ` 类型系统。

于 2013-05-07T21:46:06.300 回答