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

Dynamiske tabelkolonner baseret på brugerpræferencer

De sædvanlige tilgange til dette er:

  • EAV
  • hstore
  • XML
  • JSON

Se:

Hele "gør kolonner tilgængelige for andre brugere" kræver blot, at du beholder en "brugerdefinerede nøgler"-tabel, som du tilføjer til, hver gang en bruger definerer en tidligere ubrugt nøgle.

Tilføjelse af kolonner med dynamisk DDL lyder umiddelbart fornuftigt, men der er grænser for, hvor mange kolonner du kan gemme, og hvor "bred" en række kan være. Ydeevnen ved scanning af tabellen bliver dårligere, efterhånden som du tilføjer flere kolonner, selvom "sparsomme" kolonner, der for det meste er nul, er relativt billige. En eksklusiv lås er påkrævet for at tilføje en kolonne, noget der kan tage tid at komme ind i et travlt system, selvom tilføjelsen af ​​selve kolonnen er meget hurtig, hvis den ikke er defineret som NOT NULL DEFAULT ... . Det vil fungere ret godt i starten, men jeg formoder, at du vil fortryde at gøre det senere.



  1. Hvordan bruger man samme forbindelse til to forespørgsler i foråret?

  2. At få SQL-lagret procedure resulterer i data.frame-format ved hjælp af RODBC

  3. Fjern dubletter på MySQL JOIN-forespørgsel på JSON_ARRAYAGG med INNER JOIN

  4. Hvordan interagerer NOW() med transaktioner?