我正在尝试使用Laravel的关系为体育网站设计数据库。到目前为止,我已计划了8张桌子:
每个团队属于组织和联盟。组织和联盟有很多团队。这是因为组织可以在不同的联赛中拥有团队。
之后我开始遇到问题。我的计划是,Games表将存储Home和Away团队,所以我认为这是一个很多关系。游戏也需要成为赛季和联赛的一部分,所以奥运会属于赛季和联赛。我在那里吗?
此外,在同一赛季,球员可以属于多个球队。这就是为什么我做了名册表,玩家可以在那里与团队和季节联系起来。另外,我希望这将是季节的历史名单。我无法理解我需要什么样的关系来解决这个问题。
最后将属于属于游戏和玩家的统计数据,并且每个玩家将为每个玩游戏拥有自己的Stat行。或者会有很多关系吗?
答案 0 :(得分:0)
对于游戏,您只需将一个home_team_id和一个away_team_id外键列添加到Teams表中;这将是Game的两个belongsTo关系,一个与Team有很多关系。
至于Rosters,它听起来像一个简单的数据透视表和玩家与团队之间的belongsToMany relationship。 Rosters将拥有:player_id,team_id和season_id。对于玩家,名册和团队,每个人最多可以有两个belongsToMany关系。