设计锦标赛数据库的最佳方式

ham*_*son 13 mysql database-design

我正在创建一个网页,用于对即将到来的 2012 年欧洲足球锦标赛的所有比赛进行投注。需要一些帮助来决定在淘汰赛阶段采取什么方法。

我在下面创建了一个模型,当涉及到存储所有“已知”小组赛比赛的结果时,我非常满意。这种设计使得检查用户是否下注正确变得非常容易。

但是,存储四分之一决赛和半决赛的最佳方式是什么?这些比赛取决于小组赛的结果。

我想到的一种方法是将所有比赛添加到matches表中,但在淘汰赛阶段为主/客队分配不同的变量或标识符。然后有一些其他表,这些标识符映射到团队......这可以工作,但感觉不对。

基础数据库设计

Jac*_*las 3

我首先尝试修复模型本身中的所有预定信息,包括

  • 日期/地点
  • 结构(即小组/淘汰赛阶段)
  • 规则(即得分、抢七规则)

其中一些信息将是表中的数据,一些将是视图中的编码逻辑。

也许是这样的:

  • 团队(team_id,group_code枚举('A','B','C','D'),名称)
  • 比赛(match_id,kickoff_at)
  • group_match(match_id, team_id_home, team_id_away, group_code)
  • Knockout_match(match_id,knockout_code枚举('Q1','Q2','Q3','Q4','S1','S2','F')
  • 结果(比赛 ID、主场得分、客场得分)

诸如哪些球队参加第一季度比赛的信息不需要直接存储,因为它可以根据小组赛结果计算出来。随着锦标赛的进行,唯一要做的改变就是在result表格中插入内容。