Сводка
Создает класс атрибутивных отношений из таблицы-источника, таблицы-адресата и таблицы отношения.
Использование
Этот инструмент создает таблицу в базе данных, содержащую выбранные поля атрибутов из таблицы отношений. Эти поля используются для хранения атрибутов отношения, которые не относятся ни к исходному классу, ни к классу назначения. Например, в базе данных участков у вас может быть класс отношений между участками и владельцами, где владельцы «владеют» участками, а участки «принадлежат» владельцам. Доля во владении может храниться как атрибут этого отношения.
Простые или равноправные отношения – это отношения между двумя или более объектами в базе данных, которые существует независимо друг от друга. Например, в железнодорожной сети, могут быть железнодорожные стрелки, имеющие один или более связанный с ними семафор. Однако, железнодорожная стрелка может существовать без семафора, а семафоры могут существовать в железнодорожной сети и там, где нет стрелок. Простые отношения могут иметь кардинальность «один к одному», «один ко многим» или «многие ко многим».
Сложные отношения – это отношения, в которых существование одного объекта контролирует существования связанных с ним объектов. Например, электрические столбы несут на себе трансформаторы, а трансформаторы установлены на столбах. После удаления столба, сообщение об удалении распространяется и на связанные с ним трансформаторы, которые удаляются из класса трансформаторов. Сложные отношения всегда «один ко многим».
Описания прямого и обратного отношения поясняют отношение, связывающее один объект с другим. Описание прямого отношения описывает отношение класса-источника к классу-адресату. В примере столб-трансформатор прямой подписью пути может быть: «Столбы поддерживают трансформаторы». Описание обратного отношения поясняет отношение класса-адресата к классу-источнику. В примере со столбом и трансформатором описание обратного отношения могло бы быть таким: «Трансформаторы устанавливаются на столбах».
Синтаксис
arcpy.management.TableToRelationshipClass(origin_table, destination_table, out_relationship_class, relationship_type, forward_label, backward_label, message_direction, cardinality, relationship_table, attribute_fields, origin_primary_key, origin_foreign_key, destination_primary_key, destination_foreign_key)
Parameter | Объяснение | Тип данных |
origin_table | Таблица или класс пространственных объектов, который будет связан с таблицей-адресатом. | Table View |
destination_table | Таблица или класс пространственных объектов, который будет связан с таблицей-источником. | Table View |
out_relationship_class | Создаваемый класс отношений. | Relationship Class |
relationship_type | Тип отношения, которое должно быть установлено между источником и адресатом.
| String |
forward_label | Подпись, определяющая отношение источника к адресату. | String |
backward_label | Подпись, определяющая отношение адресата к источнику. | String |
message_direction | Направление сообщений, которые будут пересылаться между объектами, участвующими в отношении. Например, в отношении между столбами и трансформаторами, при удалении столба, он отправляет сообщение связанным с ним объектам трансформатора, информируя их о его удалении.
| String |
cardinality | Кардинальность отношения между источником и адресатом.
| String |
relationship_table | Таблица, содержащая атрибуты, которые будут добавлены к классу отношений. | Table View |
attribute_fields [attribute_fields,...] | Поля, содержащие значения, которые будут добавлены к классу отношений. | Field |
origin_primary_key | Поле в таблице-источнике, которое будет использоваться для создания отношения. Обычно это поле идентификатора объектов. | String |
origin_foreign_key | Имя поля, содержащего внешний ключ в таблице отношения, которое ссылается на поле первичного ключа в классе-источнике. | String |
destination_primary_key | Поле в таблице-адресате, которое будет использоваться для создания отношения. Обычно это поле идентификатора объектов. | String |
destination_foreign_key | Поле в таблице отношений, которое соответствует полю Первичный ключ (Primary Key) таблицы-адресата. | String |
Пример кода
Пример скрипта окна Python для использования функции TableToRelationshipClass.
import arcpy
arcpy.env.workspace = "C:/data/Montgomery.gdb"
arcpy.TableToRelationshipClass_management("owners", "Parcels", "ownersParcels_RelClass",
"SIMPLE", "Owns", "Is Owned By", "BACKWARD",
"MANY_TO_MANY", "owners", ["OWNER_PERCENT", "DEED_DATE"],
"OBJECTID", "owner_id", "OBJECTID", "parcel_id")
Создание класса отношений с атрибутами между классом объектов участков и таблицей с информацией о владельцах.
# Name: TableToRelationshipClass.py
# Description: Create an attributed relationship class between parcels
# feature class and table with owner information
# Author: ESRI
# import system modules
import arcpy
from arcpy import env
# Set environment settings
env.workspace = "C:/data"
# Copy owners.dat to file gdb table, since both tables to be related
# must be in the same database
ownerDat = "owners.dat"
ownerTbl = "Montgomery.gdb/owners"
arcpy.CopyRows_management(ownerDat, ownerTbl)
# Create attributed relationship class between 'parcel' parcel layer
# and 'owner' table with additional parcel owner information
parcel = "Montgomery.gdb/Parcels"
relClass = "Montgomery.gdb/parcelowners_RelClass"
forLabel = "Owns"
backLabel = "Is Owned By"
attributeFields = ["OWNER_PERCENT", "DEED_DATE"]
originPK = "OBJECTID"
originFK = "owner_ID"
destinationPK = "OBJECTID"
destinationFK = "parcel_ID"
arcpy.TableToRelationshipClass_management(ownerTbl, parcel, relClass, "SIMPLE",
forLabel, backLabel, "BACKWARD", "MANY_TO_MANY",
ownerTbl, attributeFields, originPK, originFK,
destinationPK, destinationFK)
Environments
Информация о лицензиях
- Basic: Нет
- Standard: Да
- Advanced: Да