gpt4 book ai didi

javascript - 存储用户测验/测试答案的正确方法是什么?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:14:08 25 4
gpt4 key购买 nike

我构建测验/测试应用程序。它在数据库中有 2 个表。

第一个,测验表:

quizes
--------
title
.....
questions

问题结构

{
"answer": "rightanswer",
"index": 0,
"question": "What is the right answer?",
"answers": [
"answers1",
"answers2",
"answers3",
"answers4"
],
}

我有单独的表来存储用户的答案 (user_answers)。

user_answers
-----
id
quiz_id
.....
answers

所以,我的问题是,存储用户答案的​​正确方法是什么。

第一种方式:

一旦用户打开测验页面,将所有问题复制到user_answers/answer 列。只需质疑他的答案并标记,然后更新 user_answers/answer

第二种方式

一旦用户打开测验页面初始化蓝图 json:

{
"index": 0
"mark": 5
}

在将这个 json 推送到数组并更新 user_answers/answer 之后,每次都合并问题和答案数组,例如:

for (let i = 0; i < questions.length; i++) {
for (let j = 0; j < userAnswers.length; j++) {
if (userAnswers[j].index == i) {
questions[i].mark = userAnswers[j].mark;
}
}
}

两种方式都有缺点在第一个中,您必须多次复制问题。如果测验有很多问题,第二个循环将花费很多时间。

那么怎样才是正确的做法呢?

最佳答案

我可以建议一种更好的方法来存储您的问题,假设您有一个问题模式:

{ 
"qid" : 0,
"question": "What is the answer",
"answers": [
{ "text" : "Answer one" , "isAnswer" : false },
{ "text" : "Answer two" , "isAnswer" : false },
{ "text" : "Answer three" , "isAnswer" : true }
]
}

以及答案模式

{
"quizId" : 10,
"qid" : 0,
"answerId" : 0 // <- here index , but you can take unique answer ids also for a question
}

这样你只需要运行一个循环来得到答案,或者写一些复杂的聚合查询来得到答案

关于javascript - 存储用户测验/测试答案的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51693992/

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