在非关系数据库比如MonogoDB中基于类型JSON的文档储存数据,而在关系型数据库中基于互相连接的表格储存数据,那么这两种数据形式之间怎么互相转换呢?这篇文章简单分析
单表
如下数据形式
[
("key1","value1"),
("key2","value2"),
("key3","value3")
]
在关系型数据库中,可以用一张表储存
一对一
如下数据形式
{
"key1": "value1",
"key2": "value2",
"key3": "value3"
}
在关系型数据库中,可以用两张表分表存key和value,两张表之间是一对一关系
一对多
如下数据形式
{
"key1": ["value11","value12"],
"key2": ["value21","value22"]
}
在关系型数据库中,可以用两张表分表存key和value,两张表之间是一对多关系
更复杂的形式,如果再多一层
{
"key1": {
"key11": ["value111","value112"],
"key12": ["value121","value122"]
},
"key2": {
"key21": ["value211","value212"],
"key22": ["value221","value222"]
}
}
在关系型数据库中,可以用三张表分表存keyX,keyXX和value,其中keyX和keyXX表是一对多关系,keyXX和value也是一对多关系
推论:JSON层次越多,在关系型数据库中也就是越多的一对多关系表
JSON转表格
- 整个JSON转成一张表格,嵌套文档实际上也可以看成列
- 整个JSON转成多张表格,表格之间通过外键连接
表格转JSON
- 表转成多个独立文档,文档之间通过引用关系联系
- 表转成一个嵌套文档
Happy learning !!