sql >> Databasteknik >  >> RDS >> PostgreSQL

jsonb vs jsonb[] för flera adresser för en kund

Använd en jsonb (inte jsonb[]!) kolumn med strukturen så här:

select
'[{
        "adresse_line-1": "a11",
        "adresse_line-2": "a12",
        "postalcode": "code1"
    },
    {
        "adresse_line-1": "a21",
        "adresse_line-2": "a22",
        "postalcode": "code2"
    }
]'::jsonb;

Ett vanligt bord relaterat till det viktigaste är dock ett bättre alternativ.

Varför inte jsonb[]? Ta en titt på JSON-definitionen:

JSON är byggd på två strukturer:

  • En samling namn/värdepar. På olika språk realiseras detta som ett objekt, post, struktur, ordbok, hashtabell, nyckellista eller associativ array.
  • En ordnad lista med värden. På de flesta språk realiseras detta som en array , vektor, lista eller sekvens.

I en jsonb-kolumn kan du därför lagra en array av objekt. Försök att använda arrayen av jsonb beror förmodligen på missförstånd av denna typ av data. Jag har aldrig sett ett rimligt behov av en sådan lösning.




  1. SQL:analysera för-, mellan- och efternamnet från ett fullständigt namnfält

  2. Hur utför jag en GROUP BY på en aliasad kolumn i MS-SQL Server?

  3. Hur Access 2019 fungerar och hur du arbetar med det

  4. Hur kan jag välja från värdelistan i Oracle