PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

jsonb vs jsonb[] para vários endereços para um cliente


Use uma coluna jsonb (não jsonb[]!) com a estrutura assim:
select
'[{
        "adresse_line-1": "a11",
        "adresse_line-2": "a12",
        "postalcode": "code1"
    },
    {
        "adresse_line-1": "a21",
        "adresse_line-2": "a22",
        "postalcode": "code2"
    }
]'::jsonb;

No entanto, uma tabela regular relacionada à principal é uma opção melhor.

Por que não jsonb[]? Dê uma olhada na definição JSON:

JSON é construído em duas estruturas:
  • Uma coleção de pares nome/valor. Em várias linguagens, isso é realizado como um objeto, registro, estrutura, dicionário, tabela de hash, lista de chaves ou matriz associativa.
  • Uma lista ordenada de valores. Na maioria dos idiomas, isso é realizado como um array , vetor, lista ou sequência.

Em uma coluna jsonb você pode, portanto, armazenar uma matriz de objetos. As tentativas de usar o array de jsonb provavelmente se devem ao mal-entendido desse tipo de dados. Eu nunca vi uma necessidade razoável de tal solução.