Я хочу создать приложение, которое позволяет пользователю создавать свои собственные формы.
Пользователь может вводить данные в свою форму и также запрашивать данные. После создания и использования форму можно редактировать (добавлять/удалять из нее поля). Форма может иметь маленькое текстовое поле, большое текстовое поле, один список, флажок или раскрывающееся меню.
Я читал и спрашивал, какой подход лучше подходит для создания таких баз данных, и я не получил прямого/хорошего ответа. Я читал, что в такого рода приложениях дизайн на основе столбцов (и представление каждого поля в виде столбца) не является хорошей идеей, поскольку пользователь может добавлять много полей, и это не очень хорошая идея, поскольку должно быть ограничение на количество столбцов в таблице. Однако я не могу заранее знать, сколько полей добавит пользователь. (Я не уверен, что они имеют в виду. Это очень поможет, если вы объясните дальше, приведя пример.)
Я подумал, что хорошей идеей может быть группировка полей в соответствии с их типами. (тип 1: текстовое поле, тип 2: раскрывающийся список, тип 3: один список... и так далее). Я хочу спроектировать свои таблицы, чтобы я мог обновить свое приложение и добавить новый тип в любое время, когда захочу, без ИЗМЕНЕНИЯ моей схемы. Поэтому я подумал о том, чтобы иметь 2 таблицы, одну таблицу для хранения метаданных о поле: его тип, его имя, его положение, возможно, в форме, и другую таблицу для хранения фактического значения поля. Кажется, я не знаю, что именно должно быть в этих таблицах и как их правильно оформить. Ваша помощь высоко ценится.