mongodb - NoSQL 最佳实践

就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the help center寻求指导。
关闭10年前.

NoSQL 数据库、OODB 或可能存在的任何其他首字母缩略词的最佳做法是什么?

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

在适用的情况下,使用 PHP 作为引用语言。阅读:我也对如何在客户端最好地处理此类数据感兴趣,而不仅仅是严格的数据库结构。这实际上意味着我还在为 SQL DB(事件记录、数据映射器等)寻找诸如“ORM”之类的模式。

不要犹豫,就这样的数据库和 PHP 5.3 的新功能如何最好地协同工作发表声明。

最佳答案

我认为,目前,NoSQL 数据存储和文档数据库概念的整体理念非常新颖,与驱动关系存储的既定理念不同,因此目前几乎没有(如果有的话)最佳实践。

此时我们知道,在 CouchDB(或任何其他文档数据库)中存储数据的规则与用于关系数据库的规则大不相同。例如,规范化和针对 3NF 的目标几乎是一个事实,而不是人们应该努力争取的事情。一个常见的例子是一个简单的博客。

在关系存储中,“帖子”、“评论”和“作者”各有一个表。每个作者会有很多帖子,每个帖子会有很多评论。这是一个运行良好的模型,并且可以很好地映射到任何关系数据库。但是,在 docDB 中存储相同的数据很可能会大不相同。您可能会拥有类似 Post 文档的集合,每个文档中都嵌入了自己的 Author 和 Comments 集合。当然,这可能不是您可以做到的唯一方法,这在某种程度上是一种妥协(现在查询单个帖子很快 - 您只需执行一次操作即可获取所有内容),但您无法维护作者和帖子之间的关系(因为它都成为帖子文档的一部分)。

我也看到过使用“类型”属性的示例(在 CouchDB 示例中)。当然,这听起来是一种可行的方法。它是最好的吗?我没有头绪。当然,在 MongoDB 中,您会在数据库中使用单独的集合,这使得 type 属性完全是无稽之谈。不过在 CouchDB 中……也许这 最好的。其他选择?每种类型的文档都有单独的数据库?这似乎有点循环,所以我自己倾向于“类型”解决方案。但这只是我。也许有更好的东西。

我意识到我在这里闲聊了很多,说的很少,很可能是你不知道的。不过我的观点是——我认为这取决于我们对我们拥有的工具和我们正在使用的数据进行试验,随着时间的推移,好的想法将被传播并成为最好的——实践。我只是觉得你在游戏中问得太早了。

https://stackoverflow.com/questions/2170152/

相关文章:

mongodb - 如何将 MongoDB 中的属性从文本类型转换为日期类型?

mongodb - 用于 mongodb ObjectId 创建时间

mongodb - 如何根据 Mongodb 中的键删除重复项?

mongodb - 截断集合

mongodb - 有人用过 Aerospike 吗?它与 MongoDB 相比如何?

node.js - 来自 AWS Lambda 的 MongoDB 连接

node.js - 连续迭代 mongodb 游标(在移动到下一个文档之前等待回调)

javascript - 如何在nodejs mongodb native 驱动程序中将字符串转换为

javascript - 如何从 Mongoose 的集合中排除一个特定字段?

node.js - Mongoose:CastError:在路径 "[object Object]"