Crear clase de relación (Gestión de datos)

Nivel de licencia:BasicStandardAdvanced

Resumen

Esta herramienta crea una clase de relación para almacenar una asociación entre campos o entidades en la tabla de origen y en la tabla de destino.

Uso

Sintaxis

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})
ParámetroExplicaciónTipo de datos
origin_table

Tabla o clase de entidad asociada a la tabla de destino.

Table View
destination_table

Tabla asociada a la tabla de origen.

Table View
out_relationship_class

Clase de relación creada.

Relationship Class
relationship_type

Tipo de relación que se creará entre las tablas de origen y de destino.

  • SIMPLEUna relación entre objetos independientes (principal a principal). Esta es la opción predeterminada.
  • COMPOSITEUna relación entre objetos dependientes donde la duración de un objeto controla la duración del objeto relacionado (principal a secundaria).
String
forward_label

Un nombre para identificar la relación de manera unívoca al navegar de la tabla de origen a la tabla de destino.

String
backward_label

Un nombre para identificar la relación de manera unívoca al navegar de la tabla de destino a la tabla de origen.

String
message_direction

Dirección en la que se transmiten los mensajes entre las tablas de origen y de destino. Por ejemplo, en una relación entre polos y transformadores, cuando se elimina el polo, envía un mensaje a sus objetos transformadores relacionados y les informa que fue eliminado.

  • FORWARDLos mensajes se transmiten desde la tabla de origen hacia la de destino.
  • BACKLos mensajes se transmiten desde la tabla de destino hacia la de origen.
  • BOTHLos mensajes se transmiten desde la tabla de origen hacia la de destino y desde la tabla de destino hacia la de origen.
  • NONENo se transmite ningún mensaje. Esta es la opción predeterminada.
String
cardinality

Determina cuántas relaciones existen entre las filas o entidades en la tabla de origen y las filas o entidades en la tabla de destino.

  • ONE_TO_ONECada fila o entidad de la tabla de origen se puede relacionar con una o ninguna fila o entidad en la tabla de destino. Esta es la opción predeterminada.
  • ONE_TO_MANYCada fila o entidad de la tabla de origen se puede relacionar con una o varias filas o entidades en la tabla de destino.
  • MANY_TO_MANYVarios campos o entidades en la tabla de origen se pueden relacionar con una o varias filas o entidades en la tabla de destino.
String
attributed

Especifica si la relación tendrá atributos.

  • NONEIndica que la clase de relación no tendrá atributos. Esta es la opción predeterminada.
  • ATTRIBUTEDIndica que la clase de relación tendrá atributos.
Boolean
origin_primary_key

Campo de la tabla de origen, generalmente el campo OID, que lo vincula al campo Clave externa de origen de la tabla de clase de relación.

String
origin_foreign_key

Campo de la tabla de clase de relación que lo vincula al campo Clave principal de origen de la tabla de origen.

String
destination_primary_key
(Opcional)

Campo de la tabla de destino, generalmente el campo OID, que lo vincula al campo Clave externa de destino de la tabla de clase de relación.

String
destination_foreign_key
(Opcional)

Campo de la tabla de clase de relación que lo vincula al campo Clave principal de destino de la tabla de destino.

String

Ejemplo de código

Ejemplo de Crear clase de relación (ventana de Python)

La siguiente secuencia de comandos de la ventana de Python muestra cómo utilizar la herramienta Crear clase de relación.

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")
Ejemplo 1 de Crear clase de relación (secuencia de comandos independiente)

Crear una clase de relación entre la clase de entidad de vegetación y una tabla con información de vegetación adicional.

# 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)
Ejemplo 2 de Crear clase de relación (secuencia de comandos independiente)

Crear una clase de relación entre la clase de entidad de parcela y una tabla con información del propietario.

# 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_ID"
arcpy.CreateRelationshipClass_management(ownerTbl,
                                         parcel,
                                         relClass,
                                         "SIMPLE",
                                         forLabel,
                                         backLabel,
                                         "BACKWARD",
                                         "ONE_TO_MANY",
                                         "NONE",
                                         primaryKey,
                                         foreignKey)

Entornos

Temas relacionados

Información sobre licencias

ArcGIS for Desktop Basic: No
ArcGIS for Desktop Standard: Sí
ArcGIS for Desktop Advanced: Sí
5/12/2014