Я думаю, что ваша проблема была бы очень хорошо решена при использовании базы данных документов, такой как mongoDB или Arangodb.В настоящее время реальность такова, что приложения могут, а иногда и должны использовать более одной БД.
Сказав, что, если бы мне пришлось использовать реляционную БД, я бы преобразовал ваши формы в 3 таблицы.Первая форма верхнего уровня будет просто хранить что-то вроде:
- имя формы,
- идентификатор формы,
- и т.д. ...
Вторая таблица будет содержать поля формы и будет выглядеть примерно так:
- FormID
- Идентификатор поля
- имя поля
- тип поля(int, varchar и т. д.)
- номер сортировки
- и т. д.
Третья таблица будет содержать информацию, введенную пользователем:
- идентификатор пользователя
- идентификатор формы
- идентификатор поля
- значение
- дата создания время
- последнеевремя изменения даты
- и т. д. *
Обратите внимание, что при хранении полей в строках, а не в столбцах, не имеет значения, что у вас есть разные типы форм.
Следует отметить, что приведенные выше определения таблиц не предназначены для полноты каким-либо образом, они предназначены для того, чтобы дать вам представление о том, как начать работу.
Наконец, обратите внимание, что многие реляционныеDB позволяет вам хранить JSON прямо сейчас в БД, как вы предлагали, но это может быть не очень хорошим вариантом, в зависимости от того, какую БД вы используете. Здесь - пример хранения JSON в mysql только для справки.