如何正确处理MySQL中的赛车?

时间:2014-02-26 11:41:32

标签: php mysql sql data-modeling racing

很可能是一个毫无头绪的问题,但我想从良好的脚开始: 尽管我尽我所能,但实际上我从未真正学会编程,而且我有点“随时随地学习”所以请原谅我,如果这对你来说非常明显...... 它更像是一种建议和反馈,而不是纯粹的编程。

我的情况如下: 我正在构建一个赛车游戏,可以接收来自许多用户的各种输入(通过php网站),我将这些信息存储在MySQL数据库中,每周一次我想处理所有这些信息以生成“圈时代“,然后将创造一场比赛(我的”输出“)。 没有考虑计算输出的各种方法,我需要做两件重要的事情,我不知道如何开始:

1)存储每个用户的比赛信息(每圈的单圈时间,最快圈速,每圈比赛位置,比赛结束时的比赛位置,奖励点数取决于位置)。 我应该在哪里以及如何以最佳方式存储这些信息? 我创建了一个具有自动递增的唯一标识符的竞赛DB,我想我将为每个竞赛生成1组数据,那么我应该在那里存储与该竞赛相关的所有信息吗? 然后我会为一圈时间信息创建一个数据行(类型为时间?)(第1行为第1行,第1行为最快,等等?)?但是我怎么知道哪一个用户(我有一个唯一的用户ID)做了哪一圈(我如何将用户ID分配到单圈时间)?

2)在比赛结束时,我需要根据比赛的最终位置来奖励分数,我应该只比较总圈数(额外的行?)并按最低排序?点数据将存储在用户DB?

我感谢您为此项目的建模所做的任何输入!

1 个答案:

答案 0 :(得分:1)

删除数据库中的每个lap_round,lap_time和位置,并添加user_id和race_id。 然后查询圈数。通过这种方式,您可以分辨哪个是最快的,每个用户最快,每圈时间等等。

获取位置查询最后一圈的数据库。它坚持自己的立场。

点数是基于用户的,因此将它们放在用户表中。只需添加。但是如果你想知道每个种族增加了多少分数而不是单独的表格分数(user_id,race_id,points)