Перейти к основному содержимому

Связи между формами

Как создать связи между формами​

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

Одно из главных преимуществ Netuno — возможность автоматически генерировать диаграмму модели данных.

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

Простая диаграмма: Идеально подходит для проверки начальной логики небольших модулей.

Шаблон простой диаграммы (pt)

Сложная диаграмма: Демонстрирует надёжность инструмента в крупномасштабных приложениях, отображая множество зависимостей и потоков данных.

Шаблон сложной диаграммы (en)

Создание поля связи типа Select​

Поле Select создаёт связь между двумя формами. Оно позволяет выбрать значение из выпадающего списка (dropdown) вместо ручного ввода. Список заполняется данными, которые уже существуют в другой форме.

В качестве примера будем использовать формы Автомобиль и Цвет.

Когда использовать? Используйте select, когда у вас есть связь типа «многие-к-одному» (N-1).

Пример: Многие автомобили могут иметь один цвет. Вместо того чтобы каждый раз вводить «Синий», вы выбираете «Синий» из списка уже зарегистрированных цветов.

  • Целевая форма: Автомобиль (где мы создадим поле select).
  • Исходная форма: Цвет (откуда берутся данные для списка цветов).

Требования​

Перед началом убедитесь, что:

  • Обе формы (Автомобиль и Цвет) уже созданы в Netuno. Подробнее см. наше руководство по созданию форм.

  • В исходной форме (Цвет) уже есть несколько записей. (Например: «Синий», «Красный», «Серебристый»). Подробнее см. наше руководство по созданию полей.

Создание и настройка Select​

Добавьте тип поля select в форму Автомобиль, чтобы она могла «подтягивать» данные из формы Цвет.

Создание и настройка поля select (pt)

1 - Перейдите к целевой форме​

  • В бэк-офисе перейдите в управление полями и откройте редактирование формы Автомобиль.

2 - Создайте новое поле​

  • Нажмите «Создать новое поле».

3 - Задайте заголовок и имя столбца​

  • Заголовок поля: Задайте понятное имя, которое увидит пользователь. Пример: Цвет автомобиля.
  • Имя столбца: Это техническое имя поля в базе данных.

Рекомендация: При создании поля связи всегда используйте суффикс _id в Имени столбца. Это ясно показывает, что столбец хранит не текст «Синий», а ID-ссылку на запись «Синий» в форме Цвет. Пример: tsvet_avtomobilya_id.

4 - Выберите тип данных​

  • В поле Тип выберите в списке вариант select - select.

5 - Настройте связь (отношение)​

Настройка связи (pt)

  • При выборе select появится новое поле Связь.
  • Нажмите кнопку Настроить.
  • Откроется модальное окно со списком всех ваших форм. Теперь нужно выбрать исходную форму.
  • Выберите форму, содержащую данные, которые нужно вывести в списке. В нашем примере нажмите tsvet - Цвет.
  • После выбора нажмите кнопку Закрыть в модальном окне.

6 - Сохраните изменения​

  • Нажмите кнопку Сохранить в управлении полями, чтобы применить все настройки.

Результат​

Готово! Теперь в режиме «просмотр», когда вы будете добавлять или редактировать запись в форме Автомобиль, поле «Цвет автомобиля» будет выпадающим списком (dropdown), в котором отобразятся все цвета, зарегистрированные в форме Цвет.

Создание поля связи типа Multiselect​

Поле Multiselect создаёт связь «многие-ко-многим» (N-M). Оно позволяет выбрать несколько элементов из списка в одном поле.

В качестве примера будем использовать формы Человек, Роль и Человек-Роль.

Когда использовать? Используйте multiselect, когда запись может быть связана с несколькими другими и наоборот. Пример: Многие люди могут иметь много ролей.

  • Один человек (например, «Анна») может иметь роли «Администратор» и «Менеджер».
  • Роль «Менеджер» может быть связана с несколькими людьми (например, «Анна», «Бруно» и «Тьяго»).

Чтобы это работало, нам нужны три формы:

  • Родительская форма (Человек): Где поле multiselect будет видно пользователю.
  • Исходная форма (Роль): Откуда берутся варианты списка (например, «Администратор», «Менеджер»).
  • Связующая форма (Человек-Роль): «Промежуточная» форма, которая хранит связи между Человеком и Ролью.

Требования​

Перед началом убедитесь, что:

  • Родительская форма (Человек) уже создана и содержит несколько записей (например, «Анна», «Бруно», «Лукас»).
  • Исходная форма (Роль) уже создана и содержит несколько записей (например, «Администратор», «Менеджер», «Консультант»).

Создание и настройка Multiselect​

Настройка выполняется в 4 этапа:

Этап 1: создание связующей формы (Человек-Роль)​

Сначала создадим «промежуточную» форму.

1 - Перейдите в Управление > Формы и нажмите «Создать новую форму».

2 - Заголовок формы: Человек-Роль.

3 - Имя таблицы: chelovek_rol (или похожее).

4 - Важно: В поле Родитель выберите основную «родительскую» форму, в данном случае Человек. Так Человек-Роль станет подформой.

5 - Нажмите Сохранить.

Создание родительской формы для связки (pt)

Этап 2: настройка полей связующей формы​

Добавьте «промежуточные» поля в форму Человек-Роль.

1 - Перейдите в управление полями формы Человек-Роль, которую вы только что создали.

2 - Добавьте два поля типа select: одно будет указывать на Человек, другое — на Роль.

Поле 1 (связь с Человеком):

Поле связи для человека (pt)

  • Заголовок поля: Имя человека
  • Имя столбца: imya_cheloveka_id (следуя соглашению _id)
  • Тип: select - select
  • Связь: Нажмите Настроить и выберите основное поле формы Человек, например: chelovek:imya.
  • Нажмите Сохранить.

Поле 2 (связь с Ролью):

  • Заголовок поля: Роль человека.
  • Имя столбца: rol_cheloveka_id.
  • Тип: select - select.
  • Связь: Нажмите Настроить и выберите основное поле формы Роль, например: rol:rol_id.
  • Нажмите Сохранить.

Поле связи с ролью человека (pt)

Этап 3: создание поля multiselect в «родительской» форме​

Когда «промежуточная» форма (Человек-Роль) готова, можно вернуться к форме Человек, чтобы создать итоговое поле.

1 - Перейдите в управление полями формы Человек.

2 - Нажмите «Создать новое поле».

3 - Заголовок поля: Человек-Роль.

4 - Имя столбца: chelovek_rol_id.

5 - Тип: multiselect - multiselect.

Этап 4: настройка поля multiselect​

При выборе типа multiselect появятся два новых поля настройки: Ссылка и Связь.

1 - Ссылка (Где сохранять связь?)​

  • Это поле сообщает Netuno: «Какое поле "промежуточной" формы ссылается обратно на меня (Человек)?»
  • Нажмите Настроить.
  • Выберите связующую форму (Человек-Роль) и поле, созданное на этапе 2 (Поле 1). Пример: chelovek_rol:imya_cheloveka_id.

2 - Связь (Откуда берутся варианты?)​

  • Это поле сообщает: «Какое поле "промежуточной" формы ссылается на варианты (Роль)?»
  • Нажмите Настроить.
  • Выберите связующую форму (Человек-Роль) и поле, созданное на этапе 2 (Поле 2). Пример: chelovek_rol:rol_cheloveka_id.

3 - Сохраните изменения​

  • Нажмите кнопку Сохранить в управлении полями, чтобы применить все настройки.

Настройка поля multiselect (pt)

Результат​

Готово! Теперь в режиме «просмотр» при добавлении или редактировании записи в форме Человек поле «Человек-Роль» будет отображаться как множественный выбор. Вы сможете выбрать несколько ролей из списка (они берутся из формы Роль), а Netuno автоматически сохранит эти связи в форме Человек-Роль.

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

Удачной разработки!