Php 如何在MySQL表中处理上周的游戏分数

Php 如何在MySQL表中处理上周的游戏分数,php,mysql,web-services,Php,Mysql,Web Services,我在MySQL数据库中有一个游戏分数表 就是有这样的简单列 UserID TotalScore 该表存储该用户完成的总分。 我需要修改上表或创建一个新表,以便我能处理上周的工作 本周还有TotalScore,所以我可能需要将上表改为下表 UserID TotalScore ThisWeekScore LastWeekScore 我想知道处理这个问题的最佳和最有效的方法 请让我知道我是MySQL新手 谢谢。说清楚,你有不同游戏或其他东西的分数,你把它们加在一列totalScore中?如果是,则

我在MySQL数据库中有一个游戏分数表 就是有这样的简单列

UserID TotalScore
该表存储该用户完成的总分。 我需要修改上表或创建一个新表,以便我能处理上周的工作 本周还有TotalScore,所以我可能需要将上表改为下表

UserID TotalScore ThisWeekScore LastWeekScore
我想知道处理这个问题的最佳和最有效的方法

请让我知道我是MySQL新手


谢谢。

说清楚,你有不同游戏或其他东西的分数,你把它们加在一列totalScore中?如果是,则需要将所有分数分别保存在另一个表中,并将totalScore、thisWeekScore、lastWeekScore保存在此新表中。

我将创建两个表:

UserID

其中分数表包含分数、日期和用户id字段

然后我将使用

SELECT * FROM UserID JOIN Scores ON UserId.id = Scores.user_id WHERE Scores.date >= curdate() - INTERVAL DAYOFWEEK(curdate())+6 DAY AND Scores.date < curdate()

并使用类似的技术获取LastWeekScore。

不确定任务是什么。但似乎有点不同的数据库结构应该更适合

+-----------+ +------------+ | User | | Score | +-----------+ 1 ∞ +------------+ | id | ------- | user_id | | name | | score | | ... | | created_at | +-----------+ +------------+ 因此,您将能够获取最新分数、本周最佳分数、上周分数或任何其他分数


或者,如果您只想添加两列,请使用。

只存储获得此分数的日期不是更好吗?也许开始/结束日期?这样你就可以数数周,月,任何事情。谢谢你的思考。是的,我可以存储日期,但我需要的是与日期相关的分数,我可以获取,但是,我还需要仅与本周和上周相关的分数,知道如何处理吗?谢谢!伊斯梅尔,好主意!,我会接受答案,但仍然在寻找一种更好的方法。嗨,我只需要处理一场比赛的分数,是的,我把总分数加起来,伊斯梅尔也有同样的想法,有两个单独的分数表和用户表,正如我所说,我仍然在寻找最强大的技术来处理这个问题。是的,分开的桌子也会帮助你以后增强它。嘿,本德!非常感谢。你也有正确的答案!。你还建议换一张桌子。你能让我知道,什么是最好的方式。。。我的意思是改变现有的表,或者拥有两个表。将来我可能会得到很多记录。从长远来看,我认为单独的表是一个更好的解决方案。因为添加两列将不允许保留任何历史记录。您只能获取本周分数,上周分数。如果将来你想得到最好的总分,或者两周前的总分,或者只是看看历史,你将无法做到。好吧!谢谢你的想法。 +-----------+ +------------+ | User | | Score | +-----------+ 1 ∞ +------------+ | id | ------- | user_id | | name | | score | | ... | | created_at | +-----------+ +------------+