NoSql / Raven数据库实施最佳实践

时间:2010-11-18 20:58:01

标签: database architecture nosql ravendb

我正在调查一个新项目,该项目将成为一个社交网络风格的网站。我正在阅读RavenDb,我喜欢它的很多功能。我没有读过nosql这么多,但我想知道它是否适合最适合的利基,旧学校sql仍然是其他东西的最佳选择。

我认为权限插件对于社交网络风格的网站来说是理想的 - 但是它真的会在数据库受到重创的环境中执行 - 或者它是否针对更多的报告风格系统进行了优化可以继续在数据库中投放新的数据结构并报告这些结构。

我渴望使用正确的工具 - 我将使用MVC3,Windsor + Nhibernate + Sql server或RavenDb。

我应该坚持使用旧学校的sql还是和街区的新孩子一起去玩:ravendb?

1 个答案:

答案 0 :(得分:20)

这个问题可以非常接近主观(即使它确实不是),你在谈论NoSQL,好像它只是一件事,而事实并非如此。

你有

  • 图形数据库(Neo4j等),
  • map / reduce样式文档数据库(Couch,Raven),
  • 文档数据库,试图感觉像普通数据库(Mongo),
  • 钥匙/超值商店(Cassandra等)
  • moar来到这里。

他们每个人都尝试通过不同的方式解决不同的问题,以及你是否在传统的关系商店中使用其中一个是

  • 适用性问题
  • 个人偏好问题

在一天结束时,对于单个系统的主要数据存储,文档数据库或关系存储可能就是您想要的,尽管对于系统的不同部分,您可能很好最终使用图形数据库(用于计算邻居等),或键/值存储(如Facebook对收件箱消息所做/已做)。

选择文档存储作为主存储而不是关系存储的主要好处是,您不必担心尝试将对象映射到表的集合,并且涉及的配置开销较少这样做。

另一个缺点/好处是你必须学习新的东西并在此过程中犯错误。

所以我的回答是否是直接的?

  • RavenDB适合
  • SQL适合

您更喜欢使用哪种?这些天我可能只是去Raven,知道我可以将数据转储到关系存储中用于报告目的,并且可能对我的系统的其他部分也是如此,并且无需进行自由文本搜索和快速写入/快速读取通过定义单独的读/写存储的努力是一个整体胜利。

但那是我,我有偏见。

相关问题