Когда заменять RDBMS/ORM на NoSQL/DocumentStore

Я просмотрел MongoDB/norm (но мне нужен общий ответ магазина, ориентированный на документы). С ним действительно приятно работать, и мне интересно знать, когда его следует использовать вместо RDBMS + ORM?

Что я должен использовать, например:

  • Stackoverflow похожие сайты
  • Социальные сообщества
  • форумы

(я разместил еще один более общий вопрос но получил отличный ответ, который может быть интересен другим, отсюда и новый вопрос)


person jgauffin    schedule 19.08.2010    source источник


Ответы (1)


Все упомянутые вами примеры могут быть созданы с использованием хранилища документов. Следует ли его использовать, зависит от конкретных требований.

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

Если ваше приложение не предъявляет очень строгих требований к согласованности данных, вы можете рассмотреть возможность использования базы данных документов. Он имеет несколько преимуществ перед РСУБД. Например, если вы используете дизайн, ориентированный на домен, для создания своего приложения, вы вы обнаружите, что агрегированные корни могут быть естественным образом сохранены в виде единого документа. Это приведет к очень небольшой фрагментации данных внутри сущностей, что повысит производительность при сегментировании данных на нескольких узлах.

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

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

person Niels van der Rest    schedule 05.09.2010