1

我的 MySQL 数据库中有一个 GAME_SCORES 表,其中包含这样的简单列

UserID TotalScore

该表存储该用户完成的总分。我需要更改上表或创建新表,以便我可以处理 LastWeek 和 ThisWeek 以及 TotalScore。所以我可能需要将上表更改为下表

UserID TotalScore ThisWeekScore LastWeekScore

我想知道处理这个问题的最佳和最有效的方法。

请让我知道我是 MySQL 新手。

谢谢。

4

3 回答 3

2

我会创建两个表:

UserID

Scores

其中 Scores 表有scoredateuser_id字段。

然后我会得到 ThisWeekScore 使用

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。

于 2013-07-24T07:29:07.060 回答
0

说清楚,你有来自不同游戏或其他东西的分数,你把它们加到一列(totalScore)?如果是,那么您需要将所有分数分别保存在另一个表中,并在这个新表中设置 totalScore、thisWeekScore、lastWeekScore。

于 2013-07-24T07:26:38.320 回答
0

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

    +-----------+ +------------+
    | 用户 | | 分数 |
    +-----------+ 1 ∞ +------------+
    | 编号 | -------- | 用户 ID |
    | 姓名 | | 分数 |
    | ... | | created_at |
    +-----------+ +------------+

因此,您将能够获取最新分数、本周最佳分数、上周分数或任何其他分数。

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

于 2013-07-24T07:40:23.280 回答