【发布时间】:2016-09-28 20:39:59
【问题描述】:
我想创建一个测验应用程序,并将结果存储在一个集合中(比如说“QuizResults”)。我还希望管理员能够创建“测验模板”,它可以存储在一个集合中(比如说“测验模板”)。管理员应该能够将特定测验“分配”给特定用户,我将在第三个集合中跟踪这些分配(比如说“测验分配”)。
在 QuizAssignments 集合中,每个文档都有“AssignedTo”用户引用,以及“TemplateForQuiz”作为对“QuizTemplates”集合的引用。
每个 QuizResults 文档都应该有 QuizAssignment 引用和 QuizTemplate 引用,但文档的其余部分应该由模板指定。
作为我的想法的一个例子 - 试图简化所以没有正确写出:
QuizTemplates:
QuizTemplate1:
Labels: ["What is 2+2?", "How do you say happy birthday in French?"]
Formats: [Number, String]
QuizTemplate2:
Labels: ["How do you say happy birthday in German?", "What is 3+3?"]
Formats: [String, Number]
QuizAssignments:
User: Reference - User model
QuizTemplate: Reference - QuizTemplates model
QuizResults:
User: Reference - User model
AssignedIn: Reference - QuizAssignments model
Template: Reference - QuizAssignments model
/* for (let i = 0; i < this.template.Labels; i++) {
let qnNo = `${i + 1}`;
this["question" + i] = {};
this["question" + i].label = this.template.Labels[i];
this["question" + i].type = this.template.Formats[i];
} */
是否有人对实现此功能的最佳方式有任何想法?
【问题讨论】:
标签: mongodb mongoose keystonejs