您好,我目前正在使用Android的Firestore数据库开发一个测验应用程序。由于我是Nosql的新手,所以我想问一下我对数据模型的看法。
所以我想在数据库中有两个主要树。一种存储问题,另一种存储用户。 所以我想像的第一个:
struct FooData { /*...*/ };
struct Foo {
std::stack<FooData> bar;
};
另一个与用户:
mainCategory
subCategory
question
-questionText
-answerA
-answerB
-...
我的动力:
这样保存问题,因为用户可以选择特定的类别和子类别,因此,我不必加载不必要的数据。
我想以与问题ID保存在问题树中相同的方式将问题ID存储在用户上,以便在用户未回答问题的情况下更轻松地创建测试。对于我来说,了解用户已经回答的特定类别的所有问题的百分比也很重要。
我想将未完成的测试存储在用户身上,以便他可以返回未完成的测试。
提前感谢您的反馈
答案 0 :(得分:0)
@szymon平衡器
我想知道您是否决定使用Firestore数据模型? 我正在处理类似的情况。 我有一堆问题,分为10个左右的类别,每个类别可以有几个子类别。 用户可以选择1到10个类别和测验问题总数,然后进行测验。 用户不应两次看到相同的问题(直到遍历整个问题库) 用户可以查看所有测验中尝试,正确,错误的总数,以及每个类别的得分。
所以我在考虑以下结构:
questions
-questionId
question: "..."
category: "category"
subCategory: "sub-category"
student
-studentId
quizs
-quizId
numberOfQuestions: "10"
categories:
number Correct: ...
answeredQuestions
-answeredQuestionId
quizId: *id to group as a quiz*
questionId: *id to ref question content*
quizQuestionNumber: *which question in quiz 4th question out of 10*
category: *from question content*
subcategory: *from question content*
isCorrect: boolean *if they got question correct*
但是我不确定100%。 你有进步吗?
谢谢 画