Как обрабатывать отношения в хранилищах документов

Я понимаю, что отношения не очень нужны в хранилищах документов, но в некоторых случаях они все еще могут быть полезны. Или я ошибаюсь (засунулся в RDBMS)?

Например:

Допустим, у меня есть куча файлов и их история изменений:

File
   Name
   Path
   CreatedBy
   .. etc ..
   Revision
      Date
      Info 
      CreatedBy

Должен ли я добавить объект пользователя в CreatedBy для файла и всех ревизий, или это должен быть идентификатор, ссылающийся на документ пользователя? Какова общая практика?

1 ответ

Должен ли я добавить объект User в CreatedBy для файла и всех ревизий, или это должен быть идентификатор, ссылающийся на документ пользователя? Какова общая практика?

Как в MongoDB, так и в CouchDB есть статьи на эту тему, и я бы сказал, что это зависит от вашего сценария, данных и системы БД, которую вы используете. Если данные, которые вы считаете встраиваемыми или ссылочными, большие, вы должны ссылаться на них, потому что, например, CouchDB не поддерживает (насколько мне известно) возврат только части документа, если он большой и вы хотите получить только основные / выбранные состав. С другой стороны, встраивание может помочь вам во время запросов, так как вам не нужно искать ссылки на документы, но это действительно зависит от системы, которую вы используете.

Другие вопросы по тегам