Монго БД отношений между объектами - PullRequest
8 голосов
/ 27 июня 2010

Я пытаюсь реализовать хранение постов в блоге, используя mongo db.

У меня есть две доменные сущности:

"Запись блога" и "Автор"

В настоящее время я добавил свойство AuthorId к записи в блоге.Это правильный подход для хранения отношений между объектами?

Ответы [ 2 ]

19 голосов
/ 02 сентября 2011

Я думаю, что этот пост будет правильным для вас http://www.mongodb.org/display/DOCS/Schema+Design

Варианты использования

Клиент / Заказ / Элемент заказа

Заказы должны быть коллекцией.клиенты коллекции.строковые элементы должны быть массивом линейных позиций, встроенных в объект заказа.

Система ведения блогов.

Сообщения должны быть коллекцией.автор сообщения может быть отдельной коллекцией или просто полем в сообщениях, если только адрес электронной почты.комментарии должны быть вложенными объектами в сообщение для производительности.

Основы проектирования схемы

Kyle Banker, 10gen

http://www.10gen.com/presentation/mongosf2011/schemabasics

Индексирование и оптимизация запросов Элвин Ричардс, старший директор по проектированию предприятий

http://www.10gen.com/presentation/mongosf-2011/mongodb-indexing-query-optimization

** Эти 2 видео - лучшие на mongoddb, которые я когда-либо видел imho *

9 голосов
/ 27 июня 2010

В настоящее время я добавил свойство AuthorId к записи в блоге.Это правильный подход для хранения отношений между объектами?

Я бы сказал, нет.Вы «должны» хранить все необходимое в документе блога денормализованным способом (например, пост в блоге, комментарии, теги и т. Д.).Поэтому, если вы хотите показать имя автора, вы должны добавить его в документ блога.Это позволило бы получать данные всей страницы одним запросом, что является своего рода точкой документа-ориентированной базы данных.

...