sql >> Databasteknik >  >> RDS >> PostgreSQL

Dynamiska tabellkolumner baserade på användarpreferenser

De vanliga metoderna för detta är:

  • EAV
  • hstore
  • XML
  • JSON

Se:

Hela "gör kolumner tillgängliga för andra användare" kräver bara att du har en "anpassade nycklar"-tabell som du lägger till när en användare definierar en tidigare oanvänd nyckel.

Att lägga till kolumner med dynamisk DDL låter rimligt till en början, men det finns gränser för hur många kolumner du kan lagra och hur "bred" en rad kan vara. Prestanda för att skanna tabellen blir sämre när du lägger till fler kolumner, även om "glesa" kolumner som oftast är noll är relativt billiga. Ett exklusivt lås krävs för att lägga till en kolumn, något som kan ta tid att komma in i ett upptaget system, även om det går väldigt snabbt att lägga till kolumnen om den inte är definierad som NOT NULL DEFAULT ... . Det kommer att fungera ganska bra till en början, men jag misstänker att du kommer att ångra dig senare.



  1. ORA-01427:enrads underfråga returnerar mer än en rad

  2. Hur beräknar man summan av två kolumner från två olika tabeller utan where-sats?

  3. Markörer på MySQL - bra eller dåligt

  4. Vad är fördelen med att använda SET XACT_ABORT ON i en lagrad procedur?