在 PostgreSQL 的 jsonb 字段中保存多个地址是个好主意。我是 nosql 新手,我想测试 PostgreSQL 来做到这一点。我不想有另一个包含地址的表,我更喜欢将其放在同一个表中。
但我有疑问,我见过PostreSQL有jsonb和jsonb[]。
存储多个地址哪一个更好?
如果我使用 jsonb,我想我必须为每个字段添加一个前缀,如下所示:
"1_adresse_line-1"
"1_adresse_line-2"
"1_postalcode"
"2_adresse_line-1"
"2_adresse_line-2"
"2_postalcode"
"3_adresse_line-1"
"3_adresse_line-2"
"3_postalcode"
etc.
使用 jsonb[] 是否更好,它是如何工作的?
使用 jsonb (不是 jsonb[]!)列,其结构如下:
select
'[{
"adresse_line-1": "a11",
"adresse_line-2": "a12",
"postalcode": "code1"
},
{
"adresse_line-1": "a21",
"adresse_line-2": "a22",
"postalcode": "code2"
}
]'::jsonb;
不过,与主表相关的常规表是更好的选择。
为什么不是 jsonb[]?看一眼JSON 定义: http://www.json.org/
JSON 建立在两种结构之上:
- 名称/值对的集合。在各种语言中,这被实现为对象、记录、结构、字典、哈希表、键控列表或关联数组。
- 值的有序列表。在大多数语言中,这被实现为array、向量、列表或序列。
因此,您可以在 jsonb 列中存储对象数组。尝试使用 jsonb 数组可能是由于对此类数据的误解。我从未见过对这样的解决方案的合理需求。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)