Originariamente inviato da skidx
Io ho realizzato un'applicazione che faceva una cosa del genere.
Visto che ci sono svantaggi in entrambe le soluzioni, io ho pensato bene di adottarle entrambe
Ovvero: tengo il campo nella tabella, per cui effettuo l'ALTER TABLE nel momento in cui viene creato; allo stesso tempo però mantengo una tabella a parte con una riga per campo. Questo mi era reso indispensabile dal fatto che dovevo gestire una sorta di browsing ridotto sui record che mostrasse solo alcuni campi, e dovevo dare all'utente la possibilità di scegliere questi campi. Quindi non potevo fare a meno di una tabella campi, ma allo stesso momento non ritenevo accettabile utilizzare una tabella generica 'campo'-'valore' per i valori (a questo proposito però si potrebbe considerare l'alternativa di una tabella per ogni campo, sebbene questo reintroduca in qualche modo il problema di effettuare delle CREATE TABLE a livello applicativo)

Per quanto riguarda le tue obiezioni sull'ALTER TABLE, ti faccio notare che in ogni caso a livello applicativo è un'operazione che verrà eseguita molto raramente. L'utente non cambia i campi ogni tre per due.

Spero che si sia capito qualcosa...