Да. И вот интересно, насколько такой подход вообще юзабелен. Делают ли так? Не задохнется ли сервер от такого кол-ва запросов?
Это не bad practice. Наоборот, если такая гибкость нужна, то значит надо делать так. Это нормализация БД. И следование паттерну "сага".
Можно кэшировать последние значение в основной таблице (со всеми вытекающими плюсами и минусами кэширования...). не айс, потомучто дублирование.
Промежуточный вариант, это просто писать историю в виде json'a в одно поле, рядом с полем текущего значения прогресса. Тоже не айс.. но где-то может сгадиться.