我想使用图形数据库来存储一个网络应用程序,该应用程序可以跟踪给定运动的排球,比赛和联赛。下面是我提出的第一级模型。我想支持此Web应用程序的以下统计信息
播放器
队
注:右键单击图像并在新标签中将其打开以查看原始图像。
答案 0 :(得分: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
节点添加属性以查看播放日期。我对体育不熟悉,但是如果他们可以在一年内交换球队,那么年份可能还不够,但是Neo4j
除了“自纪元以来的秒数”以外,并没有真正有一个很好的方法来处理时间。系统。