我想創建一個測驗應用程序,並將結果存儲在一個集合中(比如說'QuizResults')。我還希望管理員能夠創建可以存儲在集合中的「測驗模板」(比如說'QuizTemplates')。管理員應該能夠爲特定用戶「分配」特定的測驗,並且我會在第三個集合中跟蹤這些分配(比如說'QuizAssignments')。基於文檔定義模式
在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];
} */
沒有人有最好的辦法的任何想法來實現這一點?
所以,如果你不介意我總結(含在嘴裏冒着把字):1.忘掉架構的結果; 2.使用QuizTemplate文檔來配置表單; 3.將任何來自表格的數據插入特定鍵下的結果文檔; 這是對的嗎? –
1.是的,您的應用有責任正確處理數據。例如,你可以在rails應用上使用ruby。那裏的模型的實現負責驗證和結構。是的。 3.是的,它是在1.中說的,這是你的應用程序的任務而不是數據庫。 –
謝謝,只是想確保我理解正確。 –