美文网首页
文档型数据库的数据组织

文档型数据库的数据组织

作者: victorivy | 来源:发表于2019-12-20 19:08 被阅读0次

一: 定义数据集

创建一个数据库时,第一个任务是回答这个问题:"需要存存储什么数据以及如何做字段间的关联?"
现在假想一个物资数据库,用于存储物品的数量,大小,标签和等级
例如下面的例子:


image.png

二: 以JSON格式来思考

上面的表格看起来像是一个很好的存储数据的地方,但它有的字段中有多个值,如果像表格中那样在单列中存放多个值(例如:size和tag字段)是不太容易用于搜索和显示的.

在SQL数据库中,对于例子中的数据,我们可以创建一个关系表来解决这个问题.
在文档型数据库中,数据是以文档型式存储的,这些文档以JSON格式存储. JSON文档支持字段嵌入,因此相关的数据和数据列表可以以文档型式存储而不是外部表格.

JSON是一种键/值对格式,在JSON文档中,字段名和值用冒号分开,键值对用逗号分开,字段集包含在花括号里面({}).

例如我们可以为上面例子表格中的某一行以JSON格式表示:


image.png

我们以name和quantity字段为例,它们的JSON格式将会是像下面这样:

{"name": "notebook", "qty": 50}

三: 确定要使用嵌入式的候选数据并格式化数据

确定哪些字段需要有多个值,这些字段将会作为嵌入式文档或嵌入式文档中的列表/数组的候选对象.
例如,在上面的表格中,size可以被格式化为三个字段:

{"h": 11, "w": 8.5, "uom": "in"}

有些物品会有多个等级, 因此ratings可以格式化为包含scores字段的文档列表

[{"score": 8}, {"score": 9}]

对于包含有多个值的tags,也可以格式化下面的列表形式:

["college-ruled", "perforated"]

最终,对于表格中的某一行数据可以格式化为下面的JSON格式:

{
  "name": "notebook",
  "qty": 50,
  "rating": [{"score": 8}, {"score": 9}],
  "size": {"height": 11, "width": 8.5, "unit": "in"},
  "status": "A",
  "tags": ["college-ruled", "perforated"]
}

相关文章

网友评论

      本文标题:文档型数据库的数据组织

      本文链接:https://www.haomeiwen.com/subject/vgwinctx.html