Таблица с JSON полем или несколько таблиц под каждый тип данных, какой вариант проектрирования выбрать?
В JSON может поместиться всё, что вы захотите в него поместить, mysql не волнует, сколько там «полей».
Размер JSON-поля определяется переменной max_allowed_packet.
Ну и лучше юзать PostgreSQL, там с JSON'ом всё лучше (в JSONB-варианте) — например, нормальные индексы.
Зачем изобретать велосипед?
Есть форма на 120 полей - сделайте 120 полей в таблице.
1 анкета - одна строчка.
Удобно выбирать, удобно фильтровать.