Yura_Mart
@Yura_Mart

Как реализовать динамическую базу данных(MySQL)?

Ребята, подскажите кто с таким сталкивался.
Суть в чём, есть пример, в нём 5 форм(1- вопрос, 4 - ответа) для отправки данных методом POST на сервер в заранее готовые ячейки в БД.
А как динамически добавлять ячейки в БД при необходимости?
Допустим человеку нужно не 5, а 6 форм? Тогда он во фронтэнде(с помощью JS) добавит 1 доп. форму и как сделать автоматическое добавление ячейки в БД?
P.s. И как потом выводить всё что есть в ячейках в шаблон, если мы не знаем заранее что там будет?
  • Вопрос задан
  • 1106 просмотров
Решения вопроса 2
@chromimon
Или JSON (или т.п.) хранить.
То есть поле одно.
Но в нем вложенные поля в JSON/XML - в чем удобно.
Это работает нормально до тех пор пока тебе не нужен поиск по полям формы.

Другой вариант - работает гораздо медленнее, но идиоматически верно для реляционных СУБД, к коим относится и MySQL

Делается примерно так:

1. Таблица FieldTypes
ID Name

2. Таблица Requests
ID Somedata

3. Таблица Fields
IDType IDRequest Value

А связка будет такая
Request.ID = Fields.IDRequest and FieldType.ID = Fields.IDType
Ответ написан
Комментировать
@rPman
Шаблон должен иметь описание требуемых изменений в базе данных.

например для простейшего случая 1 форма = 1 таблица 1к1, каждое поле формы должно иметь информацию о типе и названии поля в базе данных (а форма соответственно содержит имя таблицы).

Отдельно описываем связи, например для справочников (где то должно быть описание имеющихся таблиц-справочников) - на форме это комбобокс, в таблице поле идентификатор с foreign key на таблицу-классификатор.

Чуть сложнее со связями 1-к-м, на форме это сложные списки (список при выделении элемента заполняется часть формы новыми данными из связанной таблицы), но это точно так же описывается прямо в шаблоне.

Точно знаю что существует несколько фреймворков для этого (например старенькая oracle forms уже тогда все это поддерживала), я их не изучал, но еще до их появления разрабатывал такую систему шаблонов и генератор, который полностью собирал базу данных, html-формы для просмотра, редактирования и поисковые формы.

Из заметных сложностей, если заранее не продумать, сложно реализовывать изменение уже существующей базы (удаление таблиц, связей, полей).
Еще проблемы создают любые отклонения от стандарта отображения форм, так как они выглядят очень однообразно, но в шаблоне можно продумать информацию о стилях (откуда брать html код для каждого элемента), порядке и местах размещения элементов на форме и прочее.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы