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

12 database architecture nosql ravendb

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

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

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

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

Rob*_*ton 20

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

你有

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

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

  • 适用性问题
  • 个人喜好的问题

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

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

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

如果我要直接的话,我的回答是什么?

  • RavenDB是合适的
  • SQL是合适的

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

但那是我,我有偏见.