我正在创建一个小型在线测验/游戏。我有一个users
-包含唯一自动增量的表 id
,一个username
场,一个password
场和一个ip
字段(从创建它的地方)。
它处理登录和类似的事情。
然后我需要跟踪用户进程。用户必须完成多个任务或级别。但是您希望查看它。
每项任务的要求如下:
- 跟踪用户对给定任务进行的尝试次数
- 跟踪他的最后一次尝试
- 跟踪他失败的地方
- 记录他最短的成功尝试
- 跟踪他最近的成功尝试。
我问的基本上是我应该如何构建我的表,使其尽可能顺利地工作,并且需要尽可能少的烦人的 SQL 查询和代码。
我是否应该为每个任务创建一个表,并将每一行绑定(bind)到用户名和与上面列表相对应的字段?或者一个大表,其中一行绑定(bind)到用户名,指示哪个任务以及与上面列表相对应的所有字段?
我不确定,这就是我问的原因。
值得一提的是:我目前拥有的任何东西都不是一成不变的,所以我可以改变你想要的任何东西。
非常感谢任何帮助和/或建议。
提前致谢。
<小时/>编辑: 我还将为每个任务创建一张表:tasks(id, name, description, finish_message)
因此,我需要为任务建立一个新的表结构,类似于我上面为用户和任务描述的表结构,但用于任务和测试。
最佳答案
我没有完全理解你的问题,但我认为以下结构可能对你有帮助:
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。
关于mysql - 我应该如何构建我的表格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12120667/