De gebruikelijke benaderingen hiervoor zijn:
- EAV
- hstore
- XML
- JSON
Zie:
- Database-ontwerp - moet ik 30 kolommen gebruiken of 1 kolom met alle gegevens in de vorm van JSON/XML ?
- https://dba.stackexchange.com/q/27057/7788
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.