Необходимо реализовать конструктор форм, например, из четырёх самых распространённых типов полей:
input
textarea
checkbox
radio
Формы можно создавать неограниченное количество и при большой посещаемости без проседаний в базе.
Мои мысли:
Создать таблицы
Forms // название формы, описание и т.п., связана с Options
Options // Храним названия полей + связь с forms и типами полей
Inputs
Textareas
Checkboxes
Radios
Соответственно при выводе выбирать это всё из базы, собирать и выводить на экран.
Может есть какие другие варианты лучше, до чего я не додумался. Например, хранить всё в одной таблице как то (массивами может) или собирать формы заранее и собирать их в одну таблицу как готовые. даже не знаю.
UPD.
Коллега подсказал, что в таблицах
Inputs
Textareas
Checkboxes
Radios
Хранить только значения. Для хранения параметров (обязательно или нет для заполнения, текст ошибки и т.п.) использовать отдельные таблицы для каждой из опций. Для того, чтобы не дублировалась информация.