Помогите плиз спроектировать БД на MongoDB

 
0
 
NoSQL
ava
lvl0nax | 23.07.2012, 22:26
Решил сделать проект для себя, и в целях изучения выбрал MongoDB. Есть следующая проблема.

Модель юзера с ролями учитель и ученик.
Модель мероприятие может создавать и ученик и учитель.
Модель конференция может создавать учитель только.
Соответствено, пользователи, могут подавать заявки на участие в мероприятии или конференции. И создатель либо подтверждает, либо отклоняет заявку. Заявки будут видны на странице мероприятия/конференции, и у пользователя на странице.

Возникла мысль сделать это через 4 отдельные модели - юзеры, конференции, мероприятия и заявки(Сообщение, user_id, event_id). Но есть ощущение, что это не сильно правильно.
Наверно имеет смысл что-то вложенными сделать. Была мысль объединить модели мероприятий(не много пугает существенное различие в полях, но монго вроде позволяет такое делать), а модель заявок сделать вложенной(user_id, message). Но тогда вопрос, если мероприятий будет много в БД, как сделать оптимально-быстрый выбор заявок на страницу пользователя? Наверно малость преждевременный вопрос, но тем не менее хочется сделать со взглядом в будущее)

В общем, если у кого-то есть идеи буду благодарен, если Вы их озвучите. Гугл как-то не очень помог решить проблему.
Comments (4)
ava
lukas | 18.09.2012, 11:56 #
Стоит делать 4 таблицы, как вы и задумали. Хранить в данном случае что-то внутри объекта - совершенно ошибочно.
ava
DissDoc | 09.04.2013, 15:29 #
Хм, странно! А почему не сделать коллекцию таким образом?

{
    _id: 1,
    name: "test"
    role: "teacher"
    meeting: {
        _id: id_meet
    }
    forum: {
        _id: id_forum
    }
}

привет пример. По-моему прекрасно ложиться на модель монги. Причем, конференция как может существовать, так ее может и не быть. И не нужно городить кучи таблиц. Все в одну коллекцию помещается
ava
ArtIllustrator | 25.12.2014, 11:53 #
Есть мысль где можно применить рекомендательные системы.
Скажу лишь, что мне известно, что проект повторит взрывной рост pinterast.com youcomedy.me и прочих рекомендалок. А это миллионы подписчиков в первый же год.
Поскольку это тоже рекомендалка(гуглите). Лишь область приложения её несколько(чрезвычайно) расширена. Областей применения много. Лишь пиши код, да пиши.
Суть идеи описана. Расписывать избегу, чтобы избежать воровства.
От вас:
1) мгновенное начало работы.
2) Постоянное творчество каждую неделю от 12 часов.
3) мы будем обсуждать то или иноге решение. окончательное слово за мной. (в этом проекте военная диктатура для получения наилучших итогов)
От меня:
1) Постоянные идеи по мере развития сайта. (сохранение скорости роста,избежание "закисания")
2) 40% от дохода с проекта. (поскольку чтобы мне иметь вдохновение бразды правления будут находиться в моих руках)

связь https://vk.com/artillustrator
скайп andruhakotovskype
ava
xamloru | 28.01.2015, 13:58 #
Цитата (lvl0nax @ 23.7.2012,  21:26)
Решил сделать проект для себя, и в целях изучения выбрал MongoDB. Есть следующая проблема.

Лучше брось каку. Уже 3 года работаю с mongoDB. Поверь постгрес намного шустрее. а еще там есть массивы,  что иногда бывает очень полезно. Если чисто для изучения то можно попробовать, но на больших проектах, потом сложно её выкидывать,  а приходится. чтобы не приходилось, лучше и не притрагиваться.
Please register or login to write.
Firm of day
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Contributors
advanced
Submit