我的项目(在Ruby on Rails 3中)是开发一个具有以下功能的"社交网络"网站:
- 用户可以是朋友.这是相互的友谊;不像Twitter那样不对称.
- 用户可以发布链接,共享它们.用户的朋友可以查看该用户共享的内容.
- 朋友们可以对这些共享链接发表 comments .
所以基本上我们有用户、链接和 comments ,以及所有相关的东西.社交网络中一件有趣的事情是,用户表本身有一种多对多的关系.
我认为我可以用SQL和RoR处理这种复杂程度.
我的问题是:在这样一个网站上使用MongoDB(或CouchDB)是一个好主意吗?
老实说,我认为答案是否定的.MongoDB似乎不太适合多对多的关系.我想不出一个好的MongoDB方式来实现友谊关系.我读到过散居者从MongoDB开始,但后来又回到了classic SQL.
但网络上的一些文章为社交网络的MongoDB辩护,最重要的是,我想做出一个明智的决定,不要错过MongoDB真正酷的一面,这将改变我的生活.
此外,我还听说过graph DB,它可能很棒,但对我来说,它们真的太年轻了,我不知道它们如何与RoR(更不用说heroku)相匹配.
那么,我错过了什么吗?