37

我目前正在写一篇论文,需要在图表中显示我的 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"
}

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

4

2 回答 2

35

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

它可以捕获文档将包含的大部分项目,例如数组、嵌入对象甚至引用。

我们用来将概念与 uml 相关联的一般准则

嵌入= 组合聚合

参考= 关联类

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

来自 IBM 站点的 UML 介绍

于 2012-07-04T15:16:26.570 回答
3

有一个为 MongoDb 做图表的工具,叫做DbSchema。它通过扫描数据库中的数据来发现模式。我还建议尝试他们的两个功能:

  • 虚拟关系允许同时探索来自不同集合的数据。不同集合之间的一种 JOIN。
  • HTML 文档,我们也在演示文稿中使用它 - 评论在鼠标悬停中(图表保存为矢量图像)。
于 2017-01-01T06:42:35.977 回答