JSON和关系表

賈小強
转载请注明原创出处,谢谢!

在非关系数据库比如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转表格

  1. 整个JSON转成一张表格,嵌套文档实际上也可以看成列
  2. 整个JSON转成多张表格,表格之间通过外键连接

表格转JSON

  1. 表转成多个独立文档,文档之间通过引用关系联系
  2. 表转成一个嵌套文档

Happy learning !!

你可能感兴趣的:(JSON和关系表)