12

我正在调查一个新项目,该项目将是一个社交网络风格的网站。我正在阅读 RavenDb,我喜欢它的许多功能的外观。我没有读过太多关于 nosql 的文章,但我想知道是否有一个最适合它的利基市场,而老派 sql 仍然是其他东西的最佳选择。

我认为权限插件将是社交网络风格网站的理想选择 - 但它是否真的会在数据库将受到重创的环境中执行 - 或者它是否针对可以保留的更具报告风格的系统进行了优化在数据库中抛出新的数据结构并报告这些结构。

我渴望使用正确的工具来完成这项工作——我将使用 MVC3、Windsor + Nhibernate+Sql 服务器或 RavenDb。

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

4

1 回答 1

21

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

你有

  • 图数据库(Neo4j 等),
  • map/reduce 风格的文档数据库(Couch,Raven),
  • 试图感觉像普通数据库(Mongo)的文档数据库,
  • 键/值存储(Cassandra 等)
  • 摩尔去这里。

它们中的每一个都试图通过不同的方式解决不同的问题,而您是否会使用其中一个而不是传统的关系存储是

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

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

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

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

如果我要直截了当,我的答案是什么?

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

你更喜欢使用哪个?这些天我可能会选择 Raven,因为我知道我可以将数据转储到关系存储中以用于报告目的,并且可能对我系统的其他部分也这样做,并且无需前往即可获得自由文本搜索和快速写入/快速读取通过定义单独的读/写存储的努力是一个整体的胜利。

但这就是我,我有偏见。

于 2010-11-19T14:14:45.023 回答