对于我所在的一家体育俱乐部,我想在网站上用MySQL管理一个排名列表。
我们有一个比赛系统,球员可以参加(或不参加)一周一次,并获得积分。以某种方式处理这些积分,并应在网站上创建一个排名列表。
我对MySQL没有太多经验,所以我想知道我想到的系统是好的还是其他方法更好。
我想有两张桌子:

players
-------
ID (unique primary key)
Name
Surname
+other arbitrary stuff

tournaments
-----------
ID (unique primary key)
Date
player (secondary key,  points to player ID)
+ columns for results of that player in this particular tournament

在网站上,我会查询锦标赛表,排序ID和球员,并处理结果,以计算排名列表。
这是一个好的方法还是有更好、更方便的方法?

最佳答案

以后你可能会发现再多一张桌子会更方便。
我想把你的比赛桌改成:

tournaments
-----------
ID (unique primary key)
Date
~Location
~+Other stuff about the tournament as a whole

然后添加一个表:
results
-----------
player_id (points to player ID)
tournament_id (points to tournament ID)
+results

原因是这样可以更容易地过滤单个比赛,而且许多玩家可以共享相同的比赛信息,而不必复制每个玩家的结果。

关于php - 使用MySQL管理排名列表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22478977/

10-09 12:38