Potresti voler guardare un modello Entity Attribute Value (EAV) progettare per i tuoi dati allora.
Fondamentalmente puoi avere una tabella con i nomi delle tabelle e alcuni altri metadati sulle tabelle.
Quindi, puoi creare una tabella per ciascuna di queste righe per avere i dati della colonna, come tipo di dati e nome.
Quindi, hai una tabella in cui inserisci i valori per ogni colonna, in una lunga tabella.
Ciò ti consente di creare tabelle dinamicamente o aggiungere/rimuovere righe in modo dinamico.
Per un confronto su relazionale e EAV puoi guardare questa domanda:
Database valore attributo entità vs .rigoroso modello relazionale di e-commerce
Se vuoi avere una vista relazionale di questi dati, però, dovrai creare trigger per mantenere le viste aggiornate e questo può essere un grande lavoro per farlo funzionare bene. Se non hai bisogno di una vista relazionale, dovresti andare bene.
Un altro modo per farlo è con un database NoSQL (http://en.wikipedia.org/wiki/ NoSQL ), poiché lo schema non deve essere impostato e quindi puoi semplicemente archiviare le colonne necessarie per quella riga.
A questo punto, prenderei la via NoSQL perché ci sono molti database che possono funzionare e la reinvenzione che devi fare è minima.