0

我正在创建一个小在线测验/游戏。我有一个users-table 包含一个唯一的 auto-increment id、一个username字段、一个password字段和一个ip字段(从它创建的位置)。

它处理登录和类似的东西。

然后我需要跟踪用户进程。用户必须完成多个任务或级别。但是,您希望查看它。

对于每个任务,要求如下:

  1. 跟踪用户为给定任务完成了多少次尝试
  2. 跟踪他的最后一次尝试
  3. 跟踪他失败的地方
  4. 跟踪他最短的成功尝试
  5. 跟踪他最近的成功尝试。

我要问的基本上是我应该如何构建我的表以使其尽可能顺利地工作,并且需要尽可能少的烦人的 SQL 查询和代码。

我是否应该为每个任务设置一个表,每一行都绑定到用​​户名和与上面列表相对应的字段?或者一个大表,其中一行绑定到用户名,指示哪个任务和所有与上面列表对应的字段?

我不确定,这就是我问的原因。

值得一提的是:我目前拥有的任何东西都不是一成不变的,所以我可以改变你想要的任何东西。

非常感谢任何帮助和/或建议。

提前致谢。


编辑:我还将为每个任务创建一个表:tasks(id, name, description, finish_message)

有了这个,我需要一个新的表结构来处理类似于我上面为用户和任务描述的任务,但用于任务和测试。

4

1 回答 1

1

我没有完全得到你的问题,但我认为以下结构可能会对你有所帮助:

    1. users(userid, username, password, ipaddress)
    2. tasks(taskid, task_description,...)--any other details you want
    3. task_attempted(userid, taskid, last_successful_attempt, shortest_successful_attempt, last_attempt, last_failed_testid);
    4. tests(testid, taskid, ...)--other details

请澄清您的第三个要求:

Keep track of where he failed

如果我没有误会您,用户可能无法继续对任务进行下一次测试,直到她成功完成当前测试,因此您可以为 test_id 添加一个字段,以跟踪特定任务中失败的 test_id。

于 2012-08-25T09:24:33.013 回答