jsonb vs jsonb []为客户提供多个地址

时间:2017-09-02 15:06:35

标签: postgresql jsonb

在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 []更好吗,它是如何工作的?

1 个答案:

答案 0 :(得分:2)

使用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基于两种结构:

     
      
  • 名称/值对的集合。在各种语言中,这被实现为对象,记录,结构,字典,哈希表,键控列表或关联数组。
  •   
  • 有序的值列表。在大多数语言中,这被实现为数组,向量,列表或序列。
  •   

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