Подтвердить что ты не робот

Рекомендации по внедрению DBN

Я изучаю новый проект, который станет сайтом в стиле социальных сетей. Я читаю RavenDb, и мне нравится внешний вид многих его функций. Я не читал на nosql все это, но мне интересно, есть ли там ниша, в которой она лучше всего подходит, а старая школа sql по-прежнему остается лучшим выбором для других вещей.

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

Я очень хочу использовать правильный инструмент для задания - я буду использовать MVC3, Windsor + либо сервер Nhibernate + Sql, либо RavenDb.

Должен ли я придерживаться старой школы sql или идти с новым ребенком на блок: ravendb?

4b9b3361

Ответ 1

Этот вопрос может быть очень близок к субъективному (хотя это действительно не так), вы говорите о NoSQL, как будто это всего лишь одно, и это не так.

У вас есть

  • графические базы данных (Neo4j и т.д.),
  • карта/сокращение файлов документов стиля (Couch, Raven),
  • базы данных документов, которые пытаются чувствовать себя как обычные базы данных (Mongo),
  • Хранилища ключей/значений (Cassandra и т.д.)
  • moar идет здесь.

Каждый из них пытается решить другую проблему с помощью разных средств и будет ли вы использовать один из них в традиционном хранилище реляций:

  • Вопрос пригодности
  • Вопрос личного предпочтения

В конце дня для хранения данных первичного для одной системы база данных документов или реляционное хранилище, вероятно, вы хотите, хотя для разных частей вашей системы вы вполне можете в конечном итоге используйте базу данных графа (для расчета соседей и т.д.) или хранилище ключей/значений (например, Facebook сделал/сделал для сообщений в почтовом ящике).

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

Другим недостатком/потенциалом будет то, что вам нужно узнать что-то новое и совершить ошибки на этом пути.

Итак, мой ответ, если я буду прямым?

  • RavenDB будет подходящим
  • SQL будет подходящим

Что вы предпочитаете использовать? В эти дни я, вероятно, просто поеду на Raven, зная, что я могу сбросить данные в реляционный магазин для целей отчетности и, вероятно, сделать то же самое и для других частей моей системы, а также получить бесплатный текстовый поиск и fastish-write/fast-reads без необходимости благодаря усилению определения отдельных магазинов чтения/записи является общей победой.

Но это я, и я предвзятый.