2.21. Связи между таблицами данных
Объекты разных таблиц с данными могут быть логически связаны между собой. В Программе реализованы инструменты связывания таблиц с помощью ключевых полей для повышения удобства перехода между логически связанными объектами. Таблицы связываются по типу отношения «один ко многим», что означает возможность привязки нескольких объектов одной таблицы (дочерней таблицы) к одному объекту второй таблицы (родительской таблицы).
Для создания связи «один ко многим» необходимо добавить поле связи (типа «Целое») в дочернюю таблицу и настроить связь с полем «id» («gid») родительской таблицы. В родительской таблице должно существовать текстовое поле для описания ее объектов. Это поле будет использовано при отображении значений в ключевом поле объектов дочерней таблицы.
Ниже приведен пример создания связи «один ко многим» между слоем (родительской таблицей) и таблицей данных (дочерней таблицей). В качестве родительской таблицы использован слой «Обслуживающие компании». Создано текстовое атрибутивное поле «Название компании» родительской таблицы для описания ее объектов (Рис. 2.321).

Рис. 2.321 Объекты родительской таблицы
В качестве дочерней таблицы использована таблица данных «Работники обслуживающих компаний» (Рис. 2.322), имеющая два атрибутивных поля: «ФИО» (тип данных «Текст») и «Дата рождения» (тип данных «Дата»).

Рис. 2.322 Объекты дочерней таблицы
Создано атрибутивное поле «Место работы» для таблицы данных «Работники обслуживающих организаций», которое будет связывать родительскую и дочернюю таблицы. В поле «Тип данных» при создании такого атрибутивного поля необходимо указать значение «Целое». В поле «Тип связи с таблицей» необходимо выбрать вариант «Таблица с данными». После выбора варианта «Таблица с данными» отобразятся дополнительные поля для настроек связи поля с родительской таблицей.
Дополнительные поля настроек необходимо заполнить следующими значениями (Рис. 2.323):
«Таблица источник» — наименование родительской таблицы;
«Поле источник для связи» — «id» или «gid»;
«Поле значений» — атрибутивное поле родительской таблицы, в котором хранятся наименования объектов таблицы.
После заполнения полей нужно нажать кнопку «Применить».

Рис. 2.323 Связывание дочерней таблицы с родительской
После установления связи между родительской и дочерней таблицами при
выборе любого объекта дочерней таблицы в таблице данных и в окнах «Объект» справа от
атрибутивного поля, связывающего дочернюю таблицу с родительской (поле
«Место работы», Рис. 2.324, Рис. 2.325), будут расположены
кнопки обзора и удаления
. Кнопка обзора предназначена для выбора
объекта родительской таблицы для связи с данным объектом дочерней
таблицы, кнопка удаления предназначена для отмены связи данного объекта
дочерней таблицы с объектами родительской таблицы. После выбора объекта
для связи или отмены связи необходимо нажать кнопку «Сохранить».

Рис. 2.324 Атрибутивное поле, связывающее родительскую и дочернюю таблицы в окне объекта

Рис. 2.325 Объекты дочерней таблицы после установки связи с родительской таблицей