【发布时间】:2012-08-05 13:56:18
【问题描述】:
这是一个 RoR 项目。
我们想要存储用户活动,例如上传照片、投票给某人、关注某人等。列出活动时,我们还需要列出您朋友的活动。那么,在这种情况下使用什么更好:面向文档的数据库(couchdb、mongo db)、图形数据库(neo4js),还是其他方法?
谢谢你们提前帮助:)
【问题讨论】:
标签: ruby-on-rails nosql graph-databases document-oriented-db
这是一个 RoR 项目。
我们想要存储用户活动,例如上传照片、投票给某人、关注某人等。列出活动时,我们还需要列出您朋友的活动。那么,在这种情况下使用什么更好:面向文档的数据库(couchdb、mongo db)、图形数据库(neo4js),还是其他方法?
谢谢你们提前帮助:)
【问题讨论】:
标签: ruby-on-rails nosql graph-databases document-oriented-db
是的,我认为 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/
【讨论】:
根据您的应用程序的规模和活动量,我建议将 Couchbase(而不是 CouchDB)用于可扩展且快速的实际活动数据,以及用于图形发现的 Neo4J(两个数据库都位于同时)。我在我的社交和实时应用程序中非常有效地使用了这种组合。
如果您想从我这里获得更多信息,请随时直接与我联系,我可以在架构决策或实施方面提供帮助。
【讨论】:
看看无限图。与 neo4j 不同,它具有可扩展性。我认为他们可以免费下载 100 万个节点。
【讨论】:
考虑使用 Sqlite。它是一个平面文件模拟数据库,可以用作嵌入式数据库。
【讨论】: