私はクイズアプリを作成し、結果を単一のコレクションに保存したいと思います(「QuizResults」としましょう)。また、管理者がコレクションに保存できる「クイズテンプレート」を作成できるようにしたいと思います(「QuizTemplates」としましょう)。管理者は特定のユーザーに特定のクイズを「割り当てる」ことができます。これらの割り当てを第3のコレクションで追跡します(「QuizAssignments」としましょう)。文書に基づいてスキーマを定義する
QuizAssignmentsコレクションでは、各ドキュメントに 'AssignedTo'ユーザーリファレンスがあり、 'QuizTemplates'コレクションへの参照として 'TemplateForQuiz'があります。
各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.はい、あなたのアプリはデータを適切に処理する責任があります。例えば、あなたはレールアプリでルビーを持つことができます。モデルの実装は、検証と構造を担当します。 2.はい。 3.それは1で言いました。それはデータベースではなくアプリケーションのタスクです。 –
ありがとう、ちょうど私が正しく理解したことを確認したかった。 –