当前位置:  开发笔记 > 编程语言 > 正文

NoSQL最佳实践

如何解决《NoSQL最佳实践》经验,为你挑选了2个好方法。

NoSQL数据库,OODB或其他可能存在的缩略语的最佳实践是什么?

例如,我经常看到一个字段"类型"用于决定客户端(应用程序)应该如何解释DB文档(在couchDB/mongoDB术语中).

如果适用,请使用PHP作为参考语言.阅读:我也对如何在客户端最好地处理这些数据感兴趣,而不仅仅是严格的DB结构.这实际上意味着我也在为SQL DB(活动记录,数据映射器等)寻找类似"ORM"的模式.

不要犹豫,说明这样的数据库和PHP 5.3的新功能如何最好地协同工作.



1> Mark Embling..:

我认为目前,NoSQL数据存储的整个概念和文档数据库的概念是如此新颖,与驱动关系存储的既定想法不同,目前很少(如果有的话)最佳实践.

我们现在知道,将数据存储在CouchDB(或任何其他文档数据库)中的规则与关系数据的规则有很大不同.例如,实际上,3NF的标准化和瞄准并不是人们应该努力的事实.一个常见的例子是一个简单的博客.

在关系存储中,每个"Posts","Comments"和"Authors"都有一个表.每个作者都有很多帖子,每个帖子都会有很多评论.这是一个运行良好的模型,可以很好地映射到任何关系数据库.但是,在docDB中存储相同的数据很可能会有很大不同.你可能有类似Post文档的集合,每个文档都有自己的作者和嵌入的评论集合.当然,这可能不是你能做到的唯一方法,而且它有点妥协(现在查询单个帖子很快 - 你只做一个操作并把所有东西都拿回来了),但你无法保持作者和帖子之间的关系(因为它都成为帖子文档的一部分).

我也见过使用"type"属性的例子(在CouchDB示例中).当然,这听起来像是一种可行的方法.它是最好的吗?我没有线索.当然,在MongoDB中,您将在数据库中使用单独的集合,使类型属性完全无意义.但在CouchDB中......也许这最好的.其他选择?每种类型的文件都有单独的数据库?这似乎有点循环,所以我自己倾向于"类型"解决方案.但那只是我.也许还有更好的东西.

我意识到我在这里做了很多絮絮叨叨,说的很少,很可能没有你不知道的.我的观点是这一点 - 我认为由我们来试验我们所获得的工具和我们正在合作的数据,随着时间的推移,好的想法将会传播并成为最佳实践.我只是觉得你在游戏中要求得太早.


你是对的:现在还为时过早,就像我想的那样.+1,但我也会等待其他意见一段时间.

2> Joel L..:

"NoSQL"应该更多地关注构建数据存储区以遵循您的应用程序要求,而不是构建应用程序以遵循某种结构 - 这更像是传统的SQL方法.

不要仅仅因为"放弃关系数据库"; 只有你的应用真的需要这样做.

推荐阅读
和谐啄木鸟
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有