Кога да замените RDBMS/ORM с NoSQL/DocumentStore

Разгледах MongoDB/norm (но искам общ отговор, ориентиран към документи). Изглежда наистина приятно за работа и ми е интересно да знам кога трябва да се използва вместо RDBMS+ORM?

Какво трябва да използвам например:

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

(Публикувах друг по-общ въпрос но получи прекрасен отговор, който може да е интересен за други, оттук и новият въпрос)


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


Отговори (1)


Всички примери, които споменахте, могат да бъдат изградени с помощта на хранилище на документи. Дали трябва да го използвате зависи от точните изисквания.

Ако имате работа със социална общност, която поддържа парични транзакции, наистина трябва да използвате RDBMS, за да обработвате тези транзакции. Просто не можете да си позволите да имате противоречиви данни в тази област.

Ако вашето приложение няма много строги изисквания по отношение на съгласуваност на данните, можете да обмислите използването на база данни с документи. Той има няколко предимства пред RDBMS. Например, ако използвате дизайн, управляван от домейн, за да създадете вашето приложение, Ще откриете, че обобщените корени могат естествено да се съхраняват като един документ. Това ще доведе до много малко фрагментиране на данни в рамките на обекти, което ви дава по-добра производителност, когато разделяте данните си в множество възли.

Някои драйвери, включително NoRM за MongoDB, поддържат типове дискриминатори. Те ви позволяват да поддържате и рехидратирате множество подкласове, като използвате много малко конфигурация. Например, ако вашето приложение поддържа множество типове домашни адреси, драйверът ще се погрижи за обработката на различните подтипове адреси. Можете също да добавите нови подтипове и драйверът автоматично ще се справи и с тях. Вижте тази статия за подробен пример.

Горното не би било възможно без най-голямото предимство на ориентираните към документи хранилища пред SQL бази данни: данни без схема. Ако имате работа с дефинирани от потребителя данни, базите данни с документи са правилният начин. Например, ако позволите на потребителите да качват файлове и свободно да ги маркират с каквито данни искат, можете лесно да съхранявате тези тагове като обикновени двойки ключ-стойност или дори вложени структури ключ-стойност за категоризирано маркиране.

person Niels van der Rest    schedule 05.09.2010