Таблицы ключей в базе геоданных в PostgreSQL
Таблица набора ключей используется для сохранения списка выбранных строк в случае, когда клиент ArcGIS for Desktop выполняет запрос связи в базе геоданных, объединяющий таблицы с помощью атрибутов, которые относятся к типам Целое, Число, Дата или Строка.
В соответствии со сведениями раздела Настройки конфигурации таблицы файлов журнала ArcSDE для PostgreSQL таблицы файлов журнала сохраняют атрибуты objectid выбранных объектов. Таблицы наборов ключей используются для сохранения соединений с помощью атрибутов, отличных от objectid.
Когда исходный набор выбранных элементов запроса к базе данных содержит более 99 строк, создается одна таблица набора ключей из расчета на подключение в каждом сеансе.
Таблицы ключей в ArcGIS for Desktop
В приложении ArcGIS for Desktop таблицы наборов ключей не отображаются. Однако если в классе объектов, который относится к классу отношений в ArcMap, выбрать более 99 записей, затем открыть таблицу атрибутов и использовать список Связанные таблицы (Related Tables), доступный в меню Опции (Options), чтобы получить связанную таблицу, будет создана и заполнена таблица набора ключей. Таблица набора ключей будет также создана при запуске сеанса редактирования.
Таблицы ключей в базе данных PostgreSQL
Таблицы наборов ключей в базе геоданных отсутствуют до тех пор, пока не будет выполняться одно из двух условий.
- С помощью приложения ArcGIS for Desktop выбираются подходящие элементы.
- Запущен сеанс редактирования.
Если выполняется любое из этих двух условий, таблица набора ключей создается в качестве глобальной временной таблицы. В первом случае таблица набора ключей создается и заполняется. Во втором примере таблица набора ключей только создается, но не заполняется до тех пор, пока не будет выбран подходящий набор элементов.
Имя таблицы ключей содержит идентификационный номер процесса сеанса, который вызвал создание этой таблицы. Формат имени выглядит так:
keyset_<process_id>
Таблица набора ключей сохраняет ID набора ключей для каждой выборки, а также значения поля, на основе которого созданы отношения между классами объектов.
Поскольку эта таблица временная, она удаляется, когда пользователь отключается от базы данных. Однако, можно заметить, что временные схемы, которые создаются PostgreSQL для хранения этих таблиц, остаются. Они имеют такие имена, как pg_temp_3.
Далее представлена таблица набора ключей для выборки, созданной между связанными таблицами LATERALS и CONTRACTORS. В этом случае поле LONG_VAL заполняется и будет содержать значения поля CONTRACTOR_ID, на основе которого между таблицами LATERALS и CONTRACTORS создается класс отношений.
keyset_<process_id>
Ниже указано определение таблицы набора ключей в PostgreSQL.
Имя поля |
Тип поля |
Описание |
Null? |
---|---|---|---|
keyset_id |
integer |
Идентификатор для выборки набора ключей |
NOT NULL |
long_val |
integer |
Значение поля, на основе которого создается класс отношений, если это поле предназначено для ввода чисел |
|
str_val |
varchar(256) |
Значение поля, на основе которого создается класс отношений, если это поле предназначено для ввода строк |
|
dbl_val |
double |
Значение поля, на основе которого создается класс отношений, если это поле предназначено для ввода чисел двойной точности |
|
date_val |
timestamp without time zone |
Значение поля, на основе которого создается класс отношений, если это поле предназначено для ввода даты |
Таблицы ключей в XML-документе рабочей области
Таблицы наборов ключей не сохраняются в XML-документе, потому что они являются временными таблицами.