Показать сообщение отдельно
  #15 (permalink)  
Старый 18.01.2017, 17:00
Аспирант
Отправить личное сообщение для serj0110 Посмотреть профиль Найти все сообщения от serj0110
 
Регистрация: 22.10.2016
Сообщений: 32

Сообщение от laimas Посмотреть сообщение
Можно, но в общих чертах.

Форма, это всего лишь инструмент обмена данными клиент->сервер и она никак не может определять структуру данных (таблиц) на сервере. А вот таблица базы вполне может это делать.

Даже если у нескольких категорий объявлений одинаковое число параметров, то это еще не означает, что их нужно держать в одной таблице, это не выгодно.

И так - категории объявлений "Транспорт", "Недвижимость", и т.д., это первичная таблица в базе, которая по мимо наименования категории содержит ее описание и прочее сопутствующее, как то идентификатор категории и связь ее с таблицей описывающей ее объявления.

У каждой категории своя таблица объявлений, связанная с первичной таблицей. А поля таблицы, это не только "ценный мех..." , то бишь name_field, а также и параметры этих полей: тип поля, размерность, null/not null, комментарий.

Если пользователь выбрал категорию объявления, то серверу достаточно передать идентификатор ее. По этому идентификатору сервер получает параметры таблицы объявлений, по которым и строит либо готовый html-код формы, либо отдает клиенту параметры для нее в виде JSON, а клиент "рисует".

При этом комментарий поля, это метка к нему, тип поля, это тип поля формы, размерность, это условие (длина введенного и прочее) и текст для placeholder, NULL/NOT NULL обязательно или нет поле формы для заполнения (required).

Таким образом требуется один сценарий для построения формы для любой категории объекта, а так как источник таблицы, то все изменения в ней автоматически будут применяться и к форме, что не потребует их правок.

Все.
Хм.. я задумывался по поводу того, чтобы хранить необходимые параметры в таблице, но как то откидывала меня. Кажется пришла идея, правда придётся снова проводить кучу тестов для получения мне нужных результатов.
Спасибо тебе огромнейшее
Ответить с цитированием