0
我设计一个数据库,记录和分析数据有关体育比赛如何记录分数在数据库
我的表之一将是“匹配”,这记录了一场比赛(团队IDS细节,位置,日期等)并包括最终得分。我还有另一张表格,记录了一场比赛中的特定比分(即得分和得分数),称为'比分'。我的问题是我是否应该在'比赛'中记录得分,或者如果我想知道得分,只需将“得分”中的所有得分加起来?有没有办法使得如果更新了“分数”行,它会重新计算“匹配”中的分数?
感谢
我设计一个数据库,记录和分析数据有关体育比赛如何记录分数在数据库
我的表之一将是“匹配”,这记录了一场比赛(团队IDS细节,位置,日期等)并包括最终得分。我还有另一张表格,记录了一场比赛中的特定比分(即得分和得分数),称为'比分'。我的问题是我是否应该在'比赛'中记录得分,或者如果我想知道得分,只需将“得分”中的所有得分加起来?有没有办法使得如果更新了“分数”行,它会重新计算“匹配”中的分数?
感谢
有一种方式,它被称为“扳机”。您可以在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