Создать класс отношений (Управление данными)

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

Резюме

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

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

Синтаксис

CreateRelationshipClass_management (origin_table, destination_table, out_relationship_class, relationship_type, forward_label, backward_label, message_direction, cardinality, attributed, 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

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

  • FORWARDСообщения передаются из исходной таблицы в таблицу-адресат.
  • BACKСообщения передаются из таблицы-адресата в исходную таблицу.
  • BOTHСообщения передаются из исходной таблицы в таблицу-адресат и из таблицы-адресата в исходную таблицу.
  • NONEСообщения не передаются. Это значение по умолчанию.
String
cardinality

Определяет, сколько может существовать отношений между строками или объектами таблицы-источника и строками или объектами таблицы-адресата.

  • ONE_TO_ONEКаждая строка или пространственный объект таблицы-источника могут быть связаны с одной строкой или пространственным объектом таблицы-адресата или не иметь связей. Это значение по умолчанию.
  • ONE_TO_MANYКаждая строка или пространственный объект таблицы-источника могут быть связаны с одной или несколькими строками или пространственными объектами таблицы-адресата.
  • MANY_TO_MANYНесколько полей или пространственных объектов таблицы-источника могут быть связаны с одной или несколькими строками или пространственными объектами таблицы-адресата.
String
attributed

Определяет, будет ли класс отношений иметь атрибуты.

  • NONEУказывает, что класс отношений не будет иметь атрибутов. Это значение по умолчанию.
  • ATTRIBUTEDУказывает, что класс отношений будет иметь атрибуты.
Boolean
origin_primary_key

Поле в таблице-источнике, как правило это поле OID, которое связывает его с полем внешнего ключа-источника в таблице класса отношений.

String
origin_foreign_key

Поле в таблице класса отношений, которое связано с полем Ключ объекта-источника (Origin Primary Key) в исходной таблице.

String
destination_primary_key
(дополнительно)

Поле в таблице-адресате, как правило это поле OID, которое связывает его с полем внешнего ключа адресата в таблице класса отношений.

String
destination_foreign_key
(дополнительно)

Поле в таблице класса отношений, которое связано с полем Первичный ключ адресата (Destination Primary Key) в таблице-адресате.

String

Пример кода

Создать класс отношений. Пример (окно Python)

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

import arcpy
arcpy.env.workspace = "C:/data/Habitat_Analysis.gdb"
arcpy.CreateRelationshipClass_management("vegtype", "vegtable", "veg_RelClass", "SIMPLE", "Attributes from vegtable", "Attributes and Features from vegtype", "NONE", "ONE_TO_ONE", "NONE", "HOLLAND95", "HOLLAND95")
Создать класс отношений. Пример 1 (автономный скрипт)

Создайте класс отношений между классом объектов растительности и таблицей с дополнительной информацией о растительности.

# Name: CreateRelationshipClass.py
# Description: Create a relationship class between vegetation feature
#                    class and table with additional vegetation information
# Author: ESRI

# import system modules 
import arcpy
from arcpy import env

# Set environment settings
env.workspace = "C:/data"

# Copy vegtable.dbf to file gdb table, since both tables to be related
#  must be in the same database
vegDbf = "vegtable.dbf"
vegTbl = "Habitat_Analysis.gdb/vegtable"
arcpy.CopyRows_management(vegDbf, vegTbl)

# Create simple relationship class between 'vegtype' vegetation layer
#  and 'vegtable' table with additional vegetation information
veg = "Habitat_Analysis.gdb/vegtype"
relClass = "Habitat_Analysis.gdb/veg_RelClass"
forLabel = "Attributes from vegtable"
backLabel = "Attributes and Features from vegtype"
primaryKey = "HOLLAND95"
foreignKey = "HOLLAND95"
arcpy.CreateRelationshipClass_management(veg, vegTbl, relClass, "SIMPLE", forLabel, 
					      backLabel, "NONE", "ONE_TO_ONE", 
					     "NONE", primaryKey, foreignKey)
Создать класс отношений. Пример 2 (автономный скрипт)

Создание класса отношений между классом объектов участков и таблицей с информацией о владельцах.

# Name: CreateRelationshipClass.py
# Description: Create a 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 simple 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"
primaryKey = "PROPERTY_ID"
foreignKey = "PROPERTY_I"
arcpy.CreateRelationshipClass_management(ownerTbl, parcel, relClass, "SIMPLE", forLabel, 
					     backLabel, "BACKWARD", "ONE_TO_MANY", 
					     "NONE", primaryKey, foreignKey)

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

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

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

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