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