Rails микроблог с использованием (Нет) SQL - PullRequest
1 голос
/ 17 декабря 2011

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

Может ли MySQL обработать эту сумму или я должен преобразовать в решение NoSQL, такое как Mongo?Я нахожусь на ранней стадии разработки, поэтому не было бы проблемой преобразовать приложение в это состояние.

Что вы думаете?Это не вопрос о SQL против NoSQL.Это о том, что лучше всего подходит для такого рода приложений?

/ Тобиас

1 Ответ

2 голосов
/ 21 декабря 2011

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

Однако, как правило (махая руками здесь), этот тип приложения лучше всего моделировать с помощью решения NoSQL.

You 'у вас будет пара базовых моделей: пользователи, блоги, сообщения, комментарии, вложения

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

Это круто, потому что когда вы получаете пост-объектиз хранилища данных у вас есть все эти богатые метаданные вместе с ним (без дополнительных затрат на присоединение этих данных)

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

Как говорится, выОчевидно, что вы также можете денормализовать использование традиционной базы данных, но подход NoSQL лучше подходит для модели данных.

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