Quello che stai descrivendo è un modello entità-attributo-valore (EAV). È un modo molto scadente per progettare un modello di dati.
Sebbene il modello di dati sia abbastanza flessibile, interrogare un tale modello di dati è piuttosto complicato. Spesso finisci per doverti unire da solo a una tabella n
volte se vuoi selezionare o filtrare su n
attributi diversi. Diventa lento piuttosto lento e diventa piuttosto difficile da ottimizzare in tempi relativamente brevi.
Inoltre, in genere finisci per creare molte funzionalità che il database o il tuo ORM fornirebbero.