Du kanske vill titta på en Entity Attribute Value-modell (EAV) designa för din data då.
I grund och botten kan du ha en tabell med tabellnamn och lite annan metadata på tabeller.
Sedan kan du skapa en tabell för var och en av dessa rader för att ha kolumndata, som datatyp och namn.
Sedan har du en tabell där du lägger in värdena för varje kolumn, i en lång tabell.
Detta låter dig skapa tabeller dynamiskt, eller lägga till/ta bort rader dynamiskt.
För en jämförelse om relationell och EAV kan du titta på denna fråga:
Entity Attribute Value Database vs. . strikt relationsmodell för e-handel
Om du dock vill ha en relationell bild av denna data, måste du skapa triggers för att hålla vyerna uppdaterade, och det kan vara en hel del arbete för att få det att fungera bra. Om du inte behöver en relationell syn bör du klara dig.
Ett annat sätt att göra detta är med en NoSQL-databas (http://en.wikipedia.org/wiki/ NoSQL ), eftersom schemat inte behöver ställas in, så du kan bara lagra de kolumner du behöver för den raden.
Vid det här laget skulle jag gå på NoSQL-vägen eftersom det finns många databaser som kan fungera, och den återuppfinning du behöver göra är minimal.