Таблица в класс отношений (Управление данными)

Уровень лицензии:BasicStandardAdvanced

Резюме

Создает класс атрибутивных отношений из таблицы-источника, таблицы-адресата и таблицы отношения.

Использование

Синтаксис

TableToRelationshipClass_management (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)
ПараметрОбъяснениеТип данных
origin_table

Таблица или класс пространственных объектов, который будет связан с таблицей-адресатом.

Table View
destination_table

Таблица или класс пространственных объектов, который будет связан с таблицей-источником.

Table View
out_relationship_class

Создаваемый класс отношений.

Relationship Class
relationship_type

Тип отношения, которое должно быть установлено между источником и адресатом.

  • SIMPLEОтношение, при котором каждый из объектов не зависит от другого (отношение «равный-с-равным»). Это значение по умолчанию.
  • COMPOSITEОтношение, при котором продолжительность существования одного объекта управляет продолжительностью существования связанного с ним объекта (отношение «родитель-потомок»).
String
forward_label

Подпись, определяющая отношение источника к адресату.

String
backward_label

Подпись, определяющая отношение адресата к источнику.

String
message_direction

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

  • NONEСообщения не пересылаются. Это значение по умолчанию.
  • FORWARDСообщения пересылаются от источника к адресату.
  • BACKWARDСообщения пересылаются от адресата к источнику.
  • BOTHСообщения пересылаются от источника к адресату и от адресата к источнику.
String
cardinality

Кардинальность отношения между источником и адресатом.

  • ONE_TO_ONEКаждый объект исходной таблицы или класса объектов может быть связан с одним объектом таблицы-адресата или класса объектов адресата или не связан вовсе. Это значение по умолчанию.
  • ONE_TO_MANYКаждый объект исходной таблицы или класса объектов может быть связан с несколькими объектами в таблице-адресате или адресном классе объектов.
  • MANY_TO_MANYНесколько объектов исходной таблицы или класса объектов могут быть связаны с несколькими объектами в таблице-адресате или адресном классе объектов.
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)

На следующем скрипте окна Python демонстрируется, как использовать инструмент Таблица в класс отношений (Table To Relationship Class).

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)

Параметры среды

Связанные темы

Информация о лицензировании

ArcGIS for Desktop Basic: Нет
ArcGIS for Desktop Standard: Да
ArcGIS for Desktop Advanced: Да
9/10/2013