MongoDB:如何在论文中表示架构图?

时间:2012-07-04 06:52:43

标签: mongodb schema nosql

我目前正在撰写论文,需要在图表中显示MongoDB的架构。我没有找到有关基于文档的数据库的图表的资源。

关系数据库有实体关系图(ERD)。我有什么选择MongoDB?我注意到很多博客只是将原始JSON显示为他们的“图表”,但这在我的论文中是不可行的。

以下是我的一个JSON结构示例:

//MultiChoiceQuestion
{
    "title": "How are you?",
    "valid_answers" : [
        {
            "_id" : ObjectID(xxxx),
            "title": "Great",
            "isCorrect": true,
        },
        {
            "_id" : ObjectID(yyyy),
            "title": "OK",
            "isCorrect": false,
        },
        {
            "_id" : ObjectID(zzzz),
            "title": "Bad",
            "isCorrect": false,
        }
    ],
    "user_responses" : [
        {
            "user": ObjectID(aaaa),
            "answer": ObjectID(xxxx)
        },
        {
            "user": ObjectID(bbbb),
            "answer": ObjectID(xxxx)
        },
        {
            "user": ObjectID(cccc),
            "answer": ObjectID(yyyy)
        }
    ]
}

//User
{
    "_id": ObjectID(aaaa),
    "name": "Person A"
}
//User
{
    "_id": ObjectID(bbbb),
    "name": "Person B"
}
//User
{
    "_id": ObjectID(cccc),
    "name": "Person C"
}

这可能是一个可能的图表: Possible Diagram?

2 个答案:

答案 0 :(得分:25)

我们发现类图实际上是表示mongo架构设计的最佳方式之一。

它可以捕获文档将拥有的大多数项目,例如数组,嵌入对象甚至引用。

我们用来将概念与uml相关联的一般指南

嵌入 =合成聚合

参考 =关联类

如果您不熟悉uml术语,那么这是一个不错的介绍。

UML intro from IBM site

答案 1 :(得分:1)

有一个为MongoDb做图表的工具,叫做DbSchema。它通过从db扫描数据来发现架构。我还建议尝试两种功能:

  • 虚拟关系,允许同时探索来自不同集合的数据。不同集合之间的一种联接。
  • HTML文档,我们也在演示文稿中使用它 - 评论是鼠标悬停(diarams保存为矢量图像)。