Se hai bisogno di un milione di tabelle nel tuo database, stai sbagliando.
Le tabelle hanno lo scopo di rappresentare dati strutturalmente e concettualmente diversi. E mi rifiuto di credere che tu stia operando con un milione di concetti diversi nella tua applicazione.
A volte, i principianti credono di dover creare una tabella per utente, ad esempio. Ma "un utente" è un concetto e memorizzi le stesse informazioni per ogni utente (nome, email, nome utente, password, per esempio), quindi dovrebbe essere uno tabella, dove ogni utente è solo una riga separata.
Sembra che tu stia commettendo un errore simile, forse non con gli utenti, ma con qualche altra astrazione di cui hai molti esempi. Ogni istanza dovrebbe essere una riga in una singola tabella.
Se ci descrivi cosa stai cercando di memorizzare in un database, possiamo quasi sicuramente aiutarti a capire come dovrebbe essere mappato alle tabelle.
Modifica
dopo aver letto i tuoi commenti (che in realtà dovrebbero essere modificati nella domanda stessa), ecco i miei pensieri:
Se tutti i dati sono strutturati allo stesso modo (come triple), puoi semplicemente archiviare tutto in un'unica tabella con tre colonne e quindi aggiungere gli indici necessari per ricerche efficienti.
Se tutti i predicati sono noti in anticipo, potresti crea una tabella per predicato, ma non sono davvero sicuro di quanto senso avrebbe, anche.
L'opzione più pulita sarebbe probabilmente quella di avere 4 tabelle:(id, subject)
, (id, predicate)
, (id, object)
,(subjectid, predicateid, objectid)
.