2014-08-29 4 views
1

Я не очень хороший парень и еще хуже, когда дело доходит до MongoDB, однако меня взяли с Meteor.js, поэтому я даю ему попробовать Я играю.Дизайн модели данных MongoDB для приложения Meteor.js

Я создаю приложение для управления проектами/билетов и хотел бы получить ваше мнение о дизайне модели данных. В моем приложении вы создаете билет, назначаете другим членам команды билет и позволяете людям получать к нему доступ и манипулировать данными, например, список дел, вложений, комментариев и т. Д. Довольно простой.

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

  1. Коллекция для всех моих пользователей.
  2. Коллекция билетов (каждый билет/проект собственного документа) с полем для членов команды, в которое я вставляю их в массив с использованием ссылки. Тогда я бы поле для комментариев, несделанного и т.д.

Или это было бы лучше всего:

  1. коллекции для всех моих пользователей.
  2. Уникальная коллекция для каждого билета с полем для членов команды, содержащихся в массиве.

Извините, если это кажется довольно простым. Я беру уроки Университета MongoDB для Node, поэтому я надеюсь, что мне не придется слишком долго полагаться на слишком многие основные вопросы.

Спасибо всем!

ответ

0

Вы должны хранить каждый билет/проект в собственном документе в одной коллекции (первый вариант).

Если вы дадите каждому билету собственную коллекцию, у вас нет эффективного способа индексирования и запроса билетов.

+0

Спасибо Томас! Не могли бы вы добавить все комментарии в массив в одном поле? – ObbyOss

+0

Да, комментарии будут представлять собой одно поле, содержащее массив объектов. Каждый объект будет содержать имя пользователя, дату, сообщение и другие применимые поля. – Tomas

Смежные вопросы