表转关系类 (数据管理)

许可等级: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

关系表中引用目标表中的主键字段的字段。

String

代码实例

TableToRelationshipClass 示例(Python 窗口)

以下 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")
TableToRelationshipClass 示例(独立脚本)

在宗地要素类与包含所有者信息的表之间创建属性关系类。

# 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/15/2013