sql >> Database teknologi >  >> RDS >> PostgreSQL

Gør JSONB PostgreSQL-arrays ubrugelige?

I de fleste tilfælde ville jeg bruge et normaliseret skema med en tabel option_tag implementering af mange-til-mange-forholdet mellem tabellerne option og tag . Referer til implementering her:

Det er måske ikke den hurtigste mulighed i enhver henseende, men det tilbyder hele spektret af DB-funktionalitet, inklusive referenceintegritet, begrænsninger, hele spektret af datatyper, alle indeksmuligheder og billige opdateringer.

For fuldstændighedens skyld skal du tilføje til din liste over muligheder:

  • hstore (god mulighed)
  • xml mere omfattende og mere kompleks end begge hstore eller jsonb , så jeg ville kun bruge det, når jeg arbejdede med XML.
  • "streng af kommaseparerede værdier" (meget simpel, for det meste dårlig mulighed)
  • EAV (Entity-Attribute-Value) eller "navn-værdi-par" (for det meste dårlig mulighed)
    Detaljer under dette relaterede spørgsmål på dba.SE:

Hvis listen kun er til visning og sjældent opdateres, ville jeg overveje et almindeligt array, som typisk er mindre og yder bedre til dette end resten.

Læs blogindlægget af Josh Berkus @a_horse linket til i sin kommentar. Men vær opmærksom på, at den fokuserer på udvalgte læste cases. Josh indrømmer:

Og det er her, den normaliserede tilgang vinder stort, især når du ændrer enkelte tags meget under samtidig belastning.

jsonb er kun en god mulighed, hvis du alligevel skal bruge JSON og kan gemme og hente JSON "som den er".



  1. Undtagelse ORA-08103:objekt eksisterer ikke længere ved brug af setfetchsize af Hibernate

  2. Bevar linjeskift fra TextArea, når du skriver til MySQL

  3. Liquibase dropper alle funktioner - postgresql

  4. Tilføj mod_mysql, mod_xml og mod_zlib til apache