这是一个RoR项目。
我们希望存储用户活动,例如上传照片,投票给某人,跟随某人等。在列出活动时,我们还需要列出您的朋友活动。那么,在这种情况下最好使用的是:面向文档的数据库(couchdb,mongo db),图形数据库(neo4js),还是其他一些方法?
感谢您提前帮助他们:)
答案 0 :(得分:2)
是的,我认为Neo4j是一个不错的选择,Rails 3的支持非常好,请参阅https://github.com/andreasronge/neo4j,甚至可以在http://docs.neo4j.org/chunked/snapshot/data-modeling-examples.html中查看cypher的社交示例,对于活动流,有各种各样的很酷的方法,如Graphity,请参阅http://www.rene-pickhardt.de/graphity-an-efficient-graph-model-for-retrieving-the-top-k-news-feeds-for-users-in-social-networks/
答案 1 :(得分:2)
根据应用程序的规模和活动量,我建议将Couchbase(不是CouchDB)组合用于实际活动数据,这些数据具有极高的可扩展性和快速性,而Neo4J用于图形发现(两个数据库均为同时)。我在我的应用程序中非常有效地使用了这种组合,既是社交的又是实时的。
如果您想了解更多我的信息,请随时与我联系,我可以帮助您做出架构决策或实施帮助。
答案 2 :(得分:1)
看看Infinitegraph。与neo4j不同,它具有可扩展性。我认为他们可以免费下载100万个节点。
答案 3 :(得分:-3)
考虑使用Sqlite。它是一个平面文件模仿数据库,可以用作嵌入式数据库。