【问题标题】:how to record the score in a database如何在数据库中记录分数
【发布时间】:2014-09-21 21:54:34
【问题描述】:

我正在设计一个数据库来记录和分析有关体育比赛的数据

我的一个表将是“比赛”,它记录了比赛的详细信息(球队 ID、地点、日期等)并包括最终得分。我还有另一个表格,它记录了比赛中的特定得分(即谁得分和得分),称为“得分”。我的问题是我是否应该在“比赛”中记录分数,或者,如果我想知道分数,只需将“分数”中的所有分数相加?有没有办法,如果“分数”行被更新,那么它将重新计算“匹配”中的分数?

谢谢

【问题讨论】:

    标签: mysql database-design


    【解决方案1】:

    有一种方法,它被称为“触发器”。您可以在scores 表上设置触发器,这样每当插入新记录时,scores 表中的相应值就会更新。

    从有关触发器的文档开始,即here

    如果您的数据不大,那么您可以创建一个具有相同信息的视图。比如:

    create view v_matchscores as
        select m.*, sum(case s.team = m.teama then score else 0 end) as ascore,
               sum(case when s.team = m.teamb then score else 0 end) as bscore
        from matches m join
             scores s
             on m.matchid = s.matchid
        group by m.matchid
    

    【讨论】:

      猜你喜欢
      • 2022-07-27
      • 1970-01-01
      • 1970-01-01
      • 2013-12-14
      • 1970-01-01
      • 2016-03-26
      • 1970-01-01
      • 2019-04-14
      • 1970-01-01
      相关资源
      最近更新 更多