我正在调查一个将成为社交网络风格网站的新项目.我正在阅读RavenDb,我喜欢它的很多功能的外观.我没有读过nosql这么多,但我想知道是否有一个适合最适合的利基,而旧的学校sql仍然是其他东西的最佳选择.
我认为插件的权限对于社交网络风格网站来说是理想的选择 – 但是它会真正在数据库被敲定的环境中执行,或者是针对更多的报告风格系统进行了优化,可以保留在数据库中抛出新的数据结构并报告这些结构.
我渴望使用正确的工具 – 我将使用MVC3,Windsor Nhibernate sql server或RavenDb.
我应该坚持使用老学校的sql还是和新的孩子一起去阻止:ravendb?
解决方法
这个问题可以非常接近主观(即使真的不是这样),你正在谈论Nosql,就像它只是一件事情,情况并非如此.
你有
图表数据库(Neo4j等),
> map / reduce风格的文档数据库(Couch,Raven),
>文档数据库,尝试感觉像普通数据库(Mongo),
>钥匙/价值店(Cassandra等)
moar去了.
他们每个人都试图通过不同的手段解决一个不同的问题,以及你是否使用传统的关系型商店之一
>适合的问题
>个人偏好的问题
在一天结束时,对于单个系统的主数据存储,文档数据库或关系存储可能是您想要的,尽管对于系统的不同部分,您可能最终会使用图形数据库(用于计算邻居等等)或键/值存储(如Facebook对收件箱消息做的/做).
选择文档存储作为主要存储的关键优势在于您不必担心会将对象映射到表的集合中,而且这样做的配置开销较少. .
另一个下行/上行将是你必须学习新的东西,并在过程中犯错误.
所以我的答案如果我是直接的?
> RavenDB是适合的
> sql将是合适的
你最喜欢用哪种?这几天我可能会去Raven,知道我可以将数据转储到一个关系型商店进行报告,也可能对我系统的其他部分进行同样的操作,并获得免费文本搜索和快速写入/快速读取通过定义单独的读/写存储的努力是一个总体的胜利.
但那是我,我有偏见.