gpt4 book ai didi

arrays - jsonb vs jsonb[] 用于客户的多个地址

转载 作者:行者123 更新时间:2023-11-29 12:09:12 30 4
gpt4 key购买 nike

在 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"

等等

是不是用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 definition:

JSON is built on two structures:

  • A collection of name/value pairs. In various languages, this is realized as an object, record, struct, dictionary, hash table, keyed list, or associative array.
  • An ordered list of values. In most languages, this is realized as an array, vector, list, or sequence.

因此,在 jsonb 列中,您可以存储一个对象数组。尝试使用 jsonb 的数组,很可能是对这类数据的误解。我从未见过对此类解决方案的合理需求。

关于arrays - jsonb vs jsonb[] 用于客户的多个地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46015140/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com