Документно-ориентированные или графические базы данных

Это проект RoR.

Мы хотим хранить действия пользователей, такие как загрузка фотографии, голосование за кого-то, подписка на кого-то и т. д. При перечислении действий нам также необходимо перечислить действия ваших друзей. Итак, что лучше использовать в этом случае: документно-ориентированную базу данных (couchdb, mongo db), графовую базу данных (neo4js) или, может быть, какой-то другой подход?

Спасибо за помощь заранее, ребята :)


person BobiYo    schedule 02.08.2012    source источник


Ответы (4)


Да, я думаю, что Neo4j — хороший выбор, поддержка Rails 3 превосходна, см. https://github.com/andreasronge/neo4j, см. даже социальные примеры с шифрованием, как в http://docs.neo4j.org/chunked/snapshot/data-modeling-examples.html, а для потоков активности существуют различные интересные подходы, такие как Graphity, см. http://www.rene-pickhardt.de/graphity-an-efficient-graph-model-for-retrieving-the-top-k-news-feeds-for-users-in-social-networks/

person Peter Neubauer    schedule 02.08.2012

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

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

person scalabl3    schedule 02.08.2012

Взгляните на Infinitegraph. Он масштабируемый, в отличие от neo4j. Я думаю, что у них есть бесплатная загрузка для 1 миллиона узлов.

person Eric    schedule 05.08.2012

Рассмотрите возможность использования Sqlite. Это база данных, имитирующая плоские файлы, и ее можно использовать в качестве встроенной базы данных.

person Deepak Kumar Vasudevan    schedule 02.08.2012