sql >> Database >  >> RDS >> PostgreSQL

Dynamische tabelkolommen op basis van gebruikersvoorkeuren

De gebruikelijke benaderingen hiervoor zijn:

  • EAV
  • hstore
  • XML
  • JSON

Zie:

Het hele ding "kolommen beschikbaar maken voor andere gebruikers" vereist alleen dat u een tabel met "aangepaste sleutels" bijhoudt die u toevoegt wanneer een gebruiker een eerder ongebruikte sleutel definieert.

Het toevoegen van kolommen met dynamische DDL klinkt in eerste instantie redelijk, maar er zijn grenzen aan het aantal kolommen dat u kunt opslaan en hoe "breed" een rij kan zijn. De prestaties van het scannen van de tabel worden slechter naarmate u meer kolommen toevoegt, hoewel "dunne" kolommen die meestal nul zijn, relatief goedkoop zijn. Een exclusief slot is vereist om een ​​kolom toe te voegen, iets dat enige tijd kan duren om op een druk systeem te komen, hoewel het toevoegen van de kolom zelf erg snel gaat als het niet is gedefinieerd als NOT NULL DEFAULT ... . In het begin zal het redelijk goed werken, maar ik vermoed dat je er later spijt van zult krijgen.



  1. SQLiteAssetHelper:Kan de database niet openen om te schrijven (zal alleen-lezen proberen)

  2. PHP en databases:weergaven, functies en prestaties van opgeslagen procedures

  3. Coalesce-functie gebruiken in Oracle

  4. Ingevoegd IP-adres in MySQL-database verandert elke keer