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

尼克·D

我建立测验/测试应用程序。它在数据库中有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
} 

这样,您只需要运行一个循环即可获取答案,或者编写一个稍微复杂的聚合查询即可获取答案

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在测验应用程序中从 Firestore 中检索好的答案以避免用户在回答问题之前知道好的答案的最佳方法是什么

测试此任务的正确方法是什么?

测试类型的正确方法是什么?

验证用户输入的正确方法是什么?

用户从simpleSAMLphp注销的正确方法是什么?

存储用户功能的最佳方法是什么?

在Firebase中存储非用户数据的正确方法是什么?

AWS Amplify - 成功注册后在 cognito 中存储用户 uuid 的正确方法是什么?

使用异步存储的正确/正确方法是什么?

测试Java方法输出的“正确”方法是什么?

保护用户本地存储在应用程序中的数据的最佳方法是什么?如何测试安全级别?

测试硒中必填字段的正确方法是什么

测试抛出IntegrityError的SQLAlchemy代码的正确方法是什么?

编写用Flow验证的Jest测试的正确方法是什么?

在Laravel中测试控制器的正确方法是什么?

为Eclipse片段创建JUnit测试的正确方法是什么?

解决Codility的PermMissingElem测试的正确方法是什么?(Java)

在Rust中组织代码/测试的正确方法是什么?

测试链接的catchError函数的正确方法是什么

使用pytest管理测试数据的正确方法是什么?

运行注入代码的集成测试库的正确方法是什么?

存储图像以测试上传和删除的好方法是什么?

在MySQL模式中存储此数据的正确方法是什么?

在RedShift表中存储数组的正确方法是什么?

进入MYSQL存储过程的正确方法是什么?

在MySQL中存储unicode字节的正确方法是什么?

在结构中存储不变路径的正确方法是什么?

在Java对象中存储本机指针的“正确”方法是什么?

在Go中实现堆栈以存储结构的正确方法是什么?