Salve a tutti.
Sto programmando un sistema che deve permettere di creare dinamicamente dei form di iscrizione a degli eventi.

Mi spiego meglio. L'utente crea l'evento -> l'utente crea il modulo di iscrizione per questo evento.
Di base ci sono dei campi che potranno essere presenti in tutti i moduli di iscrizione, ma ci sono molti campi che in alcuni moduli di iscrizione possono non esserci o altri che vanno aggiunti.

Ho pensato quindi di fare un pannello di sistema in cui l'utente può creare delle variabili (che saranno i campi) e cancellarle.
Ora, quando l'utente vuole creare un modulo di iscrizione, si ritroverà proposti i campi che sono presenti nel pannello sopra descritto ed avrà la possibilità di spuntare i campi che vorrà per quel specifico modulo e despuntare quelli che non vuole.

La soluzione che avevo pensato:
Il database ha una tabella in cui ci saranno le variabili che crea l'utente (e che può anche cancellare), una tabella con il modulo di iscrizione (dove verranno salvati quali variabili il modulo di iscrizione deve usare).
Il problema è la tabella delle iscrizioni.
Visto che non so quanti campi avrà la form non posso impostare a priori il numero delle colonne per gli iscritti.
Fare un alter table per ogni modifica che fa l'utente alle variabili del sistema mi sembra una soluzione assurda visto che avendo la possibilità di cancellarle si eliminerebbero delle intere colonne della tabella iscrizioni.
Avevo pensato quindi di inserire i dati in un unica colonna con una stringa e poi di fare l'explode con PHP. La stringa sarà del tipo (nomecampo__valore||nomecampo__valore etc...) -> esempio (nome__Franco||citta__Milano ......)
Volevo chiedervi se ci sono soluzioni più eleganti per affrontare questo tipo di problema e se quella che propongo può essere un ostacolo in termini di prestazioni (ci potrebbero essere anche una 30ina di campi in un modulo di iscrizione).

Grazie in anticipo