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

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

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

我应该坚持使用老式的 SQL 还是使用新的 SQL:拉文数据库?

有帮助吗?

解决方案

这个问题可能非常接近于主观(尽管实际上并非如此),您谈论 NoSQL 就好像它只是一件事,但事实并非如此。

你有

  • 图形数据库(Neo4j 等),
  • 映射/减少样式文档数据库(Couch,Raven),
  • 试图感觉像普通数据库(Mongo)的文档数据库,
  • 键/值存储(Cassandra 等)
  • 摩尔去这里。

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

  • 适合不适合的问题
  • 个人喜好问题

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

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

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

那么我的回答是否直接?

  • RavenDB 比较合适
  • SQL 比较合适

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

但这就是我,而且我有偏见。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top