MongoDB 嵌套设计哲学

标签 mongodb nosql

我正在创建一个公司拥有多个用户、客户等的系统。我无法决定是将“对象”(例如用户)制作为单独的集合还是公司文档的嵌入文档。

Company (Object) ->
    Users (Object) ->
        Profile (Object) ->
            ...attrs..
        History (Object) ->
            ...attrs...
    Customers ->
        ...attrs...

我现在陷入了关系数据库的思维定势,不确定使用 NoSQL 实现它的“正确”方法。你有什么想法?

当双重嵌入文档(如公司>用户->历史)变得非常大时会发生什么?

嵌入式文档方法(如果有的话)还有哪些其他缺点?同样,我偏向于关系型思维模式。

提前致谢。

最佳答案

http://www.mongodb.org/display/DOCS/Schema+Design有一些关于架构设计的建议,10Gen 成员也有各种介绍,例如:http://dl.dropbox.com/u/205597/sts/sts-04-2012-mongo-and-nosql-schema.pdf

考虑到公司中可能的用户数量和历史对象的可能数量,我认为您可能需要为其中的每一个单独的集合。

关于MongoDB 嵌套设计哲学,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9650407/

相关文章:

python - 我如何在 Python/Flask 中干净地做 slugs?

javascript - NodeJS 的 MongoDB 连接错误

mongodb - MongoDB 上的并发读取操作

mongodb - 如何验证 mongodb 中的 Web 界面列表?

database - 是否可以将 RDF 存储也用作面向文档的数据库?

nosql - DynamoDB - 如何使用邻接列表模式处理更新?

python - 如何使用 pymongo 连接到现有的文档集合/数据库?

mongodb - 在前端使用丑陋的 mongodb _ids

mongodb - 使用 mongoimport 导入日期数据类型

python - Neo4j/Cypher - 具有多个查询的分页