O que você está descrevendo é um modelo de valor de atributo de entidade (EAV). É uma maneira muito pobre de projetar um modelo de dados.
Embora o modelo de dados seja bastante flexível, consultar esse modelo de dados é bastante complicado. Você frequentemente acaba tendo que se juntar a uma tabela
n
vezes se você quiser selecionar ou filtrar em n
atributos diferentes. Isso fica lento e se torna bastante difícil de otimizar de forma relativamente rápida. Além disso, você geralmente acaba criando muitas funcionalidades que o banco de dados ou seu ORM forneceria.