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 !!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值