#database #mongodb #database-design #nosql #mongoose-schema
Вопрос:
Допустим, у меня есть онлайн-курс, и каждый курс состоит из разных модулей:
Course
Module 1
Module 2
Module 3
Однако каждый из этих модулей может быть другого типа: таким образом, модуль 1 может быть a Video Lecture
с большой расшифровкой, в то время как модуль 2 Exercise
-это и т. Д. С точки зрения пользовательского опыта, я бы хотел, чтобы пользователь просто щелкнул по модулю, а затем перешел на соответствующую страницу.
Как бы я спроектировал что-то подобное в MongoDB, где эти модули могут быть, по сути, разных типов (видео, текст и т.д.), Которые, в свою очередь, будут иметь разные схемы, связанные с ними?
Моя попытка решения:
Одно из решений, которое я придумал, — сохранить их в виде массива:
[{
title: "Lecture on Cats",
videoUrl: "https..."
},
{
title: "Lecture on Cats",
text: "Welcome to this text..."
}]
Но: …но что, если бы я не хотел внедрять все напрямую, потому что для каждого модуля слишком много данных? Я не уверен, как бы я решил эту проблему со схемами, так как, похоже, у меня может быть только один тип схемы внутри массива?