2015-11-15 1 views
0

Я новичок в MongoDB и играл с MongoDB с Node.js. Я разрабатываю примерный проект, чтобы узнать, что является проблемой, например, github.Как создавать таблицы и их иерархию при использовании MongoDB

То, что я не совсем понимаю, это то, какой подход использовать при разработке документов для хранения данных.

Вариант 1

Исходя из реляционной модели мира, я нашел, что это очень естественно созданных документов как

  • Проекты {идентификатор, имя}
  • ProjectUserMapping {идентификатор, ProjectID, идента }
  • Вопросы {id, projectid, name, blah, blah ..}

и так далее.

Вариант 2

После прочтения нескольких статей здесь и там в Интернете, я обнаружил, что люди, использующие что-то на этой линии

Project { 
Users ['yasser', 'neel', 'ian'], 
Issues [ 
    {'how do I turn this on', '22/12/2014'...'} 
] 

Какой подход лучше, учитывая следующее - много проектов и каждого проекта будет много проблем, тегов, фильтров и т. д. - Время запроса. Например, если мне нужно выполнить общий поиск проблем. Нужно ли мне сканировать все проблемы во всех проектах, так как в отличие от ранее, у меня нет отдельной таблицы проблем.

Пожалуйста, помогите мне понять это.

+0

Обнаружено это http://openmymind.net/Multiple-Collections-Versus-Embedded-Documents/#1 – Yasser

ответ

0

Это свой род провокационного вопроса, но лучшая отправная точка будет здесь:

Mongo data structures

Не зная размер/масштаб, который вы хотите получить, список всех запросов вы будете запускать, доступное оборудование и желаемые уровни производительности, вам будет сложно предоставить вам больше информации.

Но начиная с составления списка запросов, которые вы будете запускать, а затем создания структур данных, которые позволяют эффективно выполнять эти запросы (см. Ссылку выше), кажется умным.

Кроме того, монго любит хранить и получать доступ к данным из памяти, поэтому иметь достаточно памяти для хранения данных для ваших общих запросов всегда рекомендуется.