设计锦标赛/比赛数据库

Posted

技术标签:

【中文标题】设计锦标赛/比赛数据库【英文标题】:Designing tournament/matches database 【发布时间】:2017-05-21 19:36:36 【问题描述】:

我正在尝试设计简单的数据库来展示某种锦标赛。所以我有一个显示“比赛”的表格(它包含两个团队的 ID),我还创建了表格“回合”(一轮包含很少的比赛)。还有我的问题。我想创建“某些东西”(表格/视图/程序/函数),这将使我能够在给定(通过参数或在选择指令中使用“where”)ID 后显示我的锦标赛排名。例如,有两支球队,甲队和乙队。在第一轮和第二轮比赛中,甲队获胜。所以在我通过数字“1”之后,我想得到输出:

Position | Team   | Points
:-----   | -----: | :----:
1        | Team A | 3
:-----   | -----: | :----:
2        | Team B | 0

实现这样的目标最简单的方法是什么?

【问题讨论】:

【参考方案1】:

我不完全确定我理解你传入的参数代表什么,但听起来你想创建一个存储过程。是的,您是正确的,您可以在 where 子句中使用传入的参数。

【讨论】:

在“where”子句中传递或使用的参数是整数。如果为 1,则显示的排名是在 1 轮之后。如果是 10,则显示的排名在第 10 轮之后。(一轮是一组比赛)。那么最好的方法是什么?我认为表/视图不是那么好,需要存储过程,但我不确定。我对数据库有点陌生。 你能再展示一些你的桌子设计吗?你不会也需要一些锦标赛ID吗?你怎么知道要看什么匹配?在许多不同的比赛中不会有很多球队进入 1 轮吗? 整个数据库仅适用于一场比赛。每场比赛都有自己的 ID(每场比赛都包含获胜者的 ID)。我有一个只有 2 列的表,即 Round 的 ID(它不是主键)和 Match 的 ID。如果您可以更轻松地帮助我,我可以发布我的数据库的 SQL 查询或 UML。 是的,我认为发布 UML 会有所帮助,但我并没有看到全貌。

以上是关于设计锦标赛/比赛数据库的主要内容,如果未能解决你的问题,请参考以下文章

锦标赛

计算可能的锦标赛结果

将球员推进到下一场比赛 - 锦标赛括号(需要一些逻辑)

计算瑞士系统锦标赛比赛次数的算法

如何在 PHP 和 MySQL 中生成循环锦标赛?

第二十六届世界乒乓球锦标赛团体比赛名单