2012-01-15 2 views
2

Я планирую создать новое веб-приложение SNS со следующей/последующей функцией. Я думаю об использовании Ruby on Rails + MySQL, но я обнаружил, что если я их буду использовать, для некоторых часто используемых функций потребуются запросы JOIN, например, отображение содержимого, созданного пользователем, за которым вы следуете. Я думаю, что он плохо масштабируется.Что такое подходящее решение для базы данных для социальной референциальной (следующей, последовательной) структуры приложения социальной сети?

Итак, как другие подобные SNS решают эту проблему? Существует ли промышленный стандарт для такой функции?

ответ

0

Я согласен с поиском в NoSQL, но буду квалифицировать его, предлагая Neo4j, которая представляет собой базу данных графов, в которой есть все примитивы, которые вы ищете, с языком запросов, оптимизированным для следующего/последующего.

«Граф является сбор узлов (вещи) и ребра (отношения), которые соединяют пары узлов. Свойства пощечину (пары ключ-значение) на узлах и отношения и у вас есть удивительно мощный способ представления Самое большее, что вы можете придумать. В графической базе данных «отношения - это первоклассных граждан. Они соединяют два узла, и оба узла и отношения могут содержать произвольное количество пар ключ-значение. Таким образом, вы можете посмотреть на базы данных графа в качестве хранилища ключ-значение, с полной поддержкой для отношений «

http://highscalability.com/neo4j-graph-database-kicks-buttox

Для Rails конкретные примеры проверить:.

http://neo4j.rubyforge.org/guides/rails3.html

0

Вы можете использовать базы данных не-SQL - например, Apache Hadoop или HBade.

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

Например, Google Reader использует базу данных BigTable как базу данных sql.

Смежные вопросы