У меня есть проект, над которым я работаю, и я хочу использовать MongoDb.
Описание: Программа является анкетой для субъекта.Субъектом может быть колледж, факультет или кафедра.Форма регистрируется в год для любого из этих объектов, хотя в основном это департаменты.Запросы могут быть сделаны на любой из них.При необходимости данные могут быть агрегированы и использованы для ранжирования.
Отношения: колледжи содержат факультеты, а факультеты содержат кафедры.У каждого из них (ну отделы на данный момент есть формы).Может быть несколько типов форм (на данный момент 3)
Проблема: Как мне представить этот сценарий в MongoDb?Во-первых, это колледж> факультет> кафедра отношений.Как мне эффективно это представить?
Мои нынешние мысли: 1. Что касается данных колледжа> факультета> кафедры, я подумал, что могу использовать одну коллекцию и пометить их в соответствии с:
{name:'Department X', tags: ['department'], parent: '???'}
.Родитель может быть идентификатором родительского элемента, поэтому в этом случае идентификатор связанного отдела.Другой вариант был
colleges: {name: 'some college',etc,faculties: [{name: 'some faculty', etc, departments: [{...}]}].
Проблема заключалась в том, что я использовал идентификатор для идентификации каждого, например, отдела.
Что касается форм, я все еще не уверен.Если я включу данные в записи отделов, насколько легко будет получить данные для ряда отделов, скажем, на факультете, и выполнить суммирование по большинству полей (большинство - число)?
Действительно нужна некоторая помощь здесь, исходя из реляционного фона.Я использую c # с CSMongo от Hugo.
С уважением, Ричард