gpt4 book ai didi

php - 测验的数据库结构是什么样的?

转载 作者:行者123 更新时间:2023-11-29 08:23:13 25 4
gpt4 key购买 nike

这是我当前的测验数据库结构:

为了测试和简单起见,我只提出了 3 个问题。这就是我的表格(测验)的样子:

| id | score | q1_answered | q2_answered | q3_answered |
--------------------------------------------------------
| 1 | 210 | 0 | 1 | 0 |
| 9 | 380 | 1 | 0 | 1 |
| 5 | 210 | 1 | 1 | 1 |
--------------------------------------------------------

每个问题列都有从 0 到 1 的数字,0 表示尚未回答,1 表示已正确回答。

我想知道你们中是否有人有其他想法来创建更好的结构或更好、更高效的结构。是否还有一种有效的方法来为解决了特定问题的用户添加时间戳?

例如:如果用户回答了问题1,则会记录并显示回答时间。

这个结构可以工作,但我一直认为如果我再添加 50 个问题,可能效率不高。任何帮助将不胜感激。

最佳答案

我会根据您拥有的表创建两个表:

scores
sID score testID
1 210 1
9 380 1
// etc etc

quests
sID testID question answer anstime
1 1 1 0 1231237128961
1 1 2 1 1231237128964
1 1 3 0 1231237128968
9 1 1 1 1231237128961
9 1 2 0 1231237128968

基本上,您正在以一种可以轻松添加更多问题的方式标准化数据,而无需以任何方式修改表格,您仍然有一个干净的表格,可以在其中保存易于连接的分数

然后,您还可以执行更有趣的查询,例如在某个时间有多少人回答了问题 3,很好地聚合数据,当然,如果您想显示某个时间的所有结果,仍然可以将其连接回分数。特定 ID。

我还在表中添加了两列,称为 testID。这样,您不仅可以跟踪一个测试的多个用户,还可以跟踪多个测试中的多个用户。您将能够看到学生在测试过程中是否有所进步,或者随着科目的进行而逐渐变差。

编辑:从结构中复制数据会有点烦人,但这至少应该让您开始这条道路:

insert into quests (sID, question, answer)
select sID, testID, q1_answered from yourTableName

您可以通过在原始表上使用 select 语句将数据插入到新结构中,就像我上面向您展示的那样。

关于php - 测验的数据库结构是什么样的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18730488/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com