Я хотел бы создать приложение для викторины и сохранить результаты в одной коллекции (скажем, «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. Реализация этих моделей отвечает за валидацию и структуру. 2. Да. 3. Да, на этом сказано в 1. Это задача вашего приложения не базы данных. –
Спасибо, просто хотел убедиться, что я правильно понял. –