Ce que vous décrivez est un modèle entité-attribut-valeur (EAV). C'est une très mauvaise façon de concevoir un modèle de données.
Bien que le modèle de données soit assez flexible, interroger un tel modèle de données est assez compliqué. Vous finissez souvent par devoir vous auto-joindre une table n
fois si vous souhaitez sélectionner ou filtrer sur n
différents attributs. Cela devient plutôt lent et devient plutôt difficile à optimiser relativement rapidement.
De plus, vous finissez généralement par créer de nombreuses fonctionnalités que la base de données ou votre ORM fournirait.