Когда заменить RDBMS / ORM на NoSQL / DocumentStore - PullRequest
1 голос
/ 19 августа 2010

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

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

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

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

1 Ответ

2 голосов
/ 05 сентября 2010

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

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...