繁体   English   中英

为国际象棋锦标赛创建简单的数据库

[英]Create simple database for chess tournaments

我正在尝试为国际象棋锦标赛制作简单的应用程序,但是我的数据库有问题,我有参加锦标赛的用户(很好),但是我如何让用户参加比赛和比赛,我应该建立另一个关系 user_tournament-round-锦标赛,user_tournament-match-round? 在此处输入图像描述

请看这个答案,而不是解决方案。 在您的问题中,没有足够的信息来完全涵盖所有用例,因此下面的答案包含很多猜测。

在我过于简单化的观点和你最初的 model 中, tournament_competitors竞争者(从user_tournament重命名,因为我们有竞争对手而不是用户)表将为每个注册的竞争对手创建一个唯一的 ID。 此 id 将用作tournament_matches表中的参考(该表将两次链接到tournament_competitors竞争者,该表将连接两个对手 - 约束警告)。 该表还将注册匹配类型。

对于匹配类型,我看到了两种可能性。 比赛表将列出所有可能的比赛类型(决赛、半决赛、四分之一决赛、淘汰赛等),这些将通过 id 被引用到tournament_matches匹配表中(composite_id tournament_id-competitor_id-group_id形式的复合键) . 这种方法,特别是针对淘汰赛的比赛,需要找到一种方法,将每个淘汰组中的参赛者数量与每个参赛者在被认为被淘汰之前必须通过的比赛数量联系起来——创建一个回合数。 我将其视为业务逻辑部分,因此不在数据库中。 group_id也需要计算,最好在应用程序上完成。

另一种方法是让tournament_matches表中的各种比赛类型作为一个自由字段——由应用程序填充。 锦标赛结构(组数、每组中对手的数量等)将被定义为tournaments表中的属性。 在这种观点下,不需要rounds

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM