Как обрабатывать отношения в хранилищах документов
Я понимаю, что отношения не очень нужны в хранилищах документов, но в некоторых случаях они все еще могут быть полезны. Или я ошибаюсь (засунулся в RDBMS)?
Например:
Допустим, у меня есть куча файлов и их история изменений:
File
Name
Path
CreatedBy
.. etc ..
Revision
Date
Info
CreatedBy
Должен ли я добавить объект пользователя в CreatedBy
для файла и всех ревизий, или это должен быть идентификатор, ссылающийся на документ пользователя? Какова общая практика?
1 ответ
Должен ли я добавить объект User в CreatedBy для файла и всех ревизий, или это должен быть идентификатор, ссылающийся на документ пользователя? Какова общая практика?
Как в MongoDB, так и в CouchDB есть статьи на эту тему, и я бы сказал, что это зависит от вашего сценария, данных и системы БД, которую вы используете. Если данные, которые вы считаете встраиваемыми или ссылочными, большие, вы должны ссылаться на них, потому что, например, CouchDB не поддерживает (насколько мне известно) возврат только части документа, если он большой и вы хотите получить только основные / выбранные состав. С другой стороны, встраивание может помочь вам во время запросов, так как вам не нужно искать ссылки на документы, но это действительно зависит от системы, которую вы используете.