Beziehungsklasse erstellen (Data Management)

Zusammenfassung

Mit diesem Werkzeug erstellen Sie eine Beziehungsklasse zum Speichern einer Zuordnung zwischen Feldern oder Features in der Quelltabelle und der Zieltabelle.

Verwendung

Syntax

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})
ParameterErläuterungDatentyp
origin_table

Die Tabelle oder Feature-Class, die der Zieltabelle zugeordnet wird.

Table View
destination_table

Die Tabelle, die der Quelltabelle zugewiesen wird.

Table View
out_relationship_class

Die erstellte Beziehungsklasse.

Relationship Class
relationship_type

Der zwischen Quell- und Zieltabelle zu erstellende Beziehungstyp.

  • SIMPLEEine Beziehung zwischen unabhängigen Objekten (Parent-zu-Parent). Dies ist die Standardeinstellung.
  • COMPOSITEEine Beziehung zwischen abhängigen Objekten, bei der die Lebensdauer eines Objekts über die Lebensdauer des in Beziehung stehenden Objekts entscheidet (Parent-zu-Child).
String
forward_label

Ein Name, der die Beziehung beim Navigieren von der Quelltabelle zur Zieltabelle eindeutig kennzeichnet.

String
backward_label

Ein Name, der die Beziehung beim Navigieren von der Zieltabelle zur Quelltabelle eindeutig kennzeichnet.

String
message_direction

Die Richtung, in die Meldungen zwischen Quell- und Zieltabelle weitergeleitet werden. Beispiel: In einer Beziehung zwischen Masten und Transformatoren wird vom Mast, sobald er gelöscht wird, eine Nachricht an die mit ihm in Beziehung stehenden Transformatorobjekte gesendet, um sie darüber zu informieren.

  • FORWARDMeldungen werden von der Quell- zur Zieltabelle weitergeleitet.
  • BACKMeldungen werden von der Ziel- zur Quelltabelle weitergeleitet.
  • BOTHMeldungen werden in beide Richtungen, von der Quell- zur Zieltabelle und von der Ziel- zur Quelltabelle weitergeleitet.
  • NONEEs werden keine Meldungen weitergeleitet. Dies ist die Standardeinstellung.
String
cardinality

Legt fest, wie viele Beziehungen zwischen Zeilen oder Features in der Quelltabelle und Zeilen und Features in der Zieltabelle bestehen.

  • ONE_TO_ONEJede Zeile bzw. jedes Feature in der Quelltabelle kann mit 0 oder einer Zeile bzw. einem Feature in der Zieltabelle in Beziehung gesetzt werden. Dies ist die Standardeinstellung.
  • ONE_TO_MANYJede Zeile bzw. jedes Feature in der Quelltabelle kann mit einer oder mehreren Zeilen bzw. einem oder mehreren Features in der Zieltabelle in Beziehung gesetzt werden.
  • MANY_TO_MANYMehrere Zeilen bzw. Features in der Quelltabelle können mit einer oder mehreren Zeilen bzw. einem oder mehreren Features in der Zieltabelle in Beziehung gesetzt werden.
String
attributed

Bestimmt, ob die Beziehung über Attribute verfügt.

  • NONEGibt an, dass die Beziehungsklasse nicht über Attribute verfügt. Dies ist die Standardeinstellung.
  • ATTRIBUTEDGibt an, dass die Beziehungsklasse über Attribute verfügt.
Boolean
origin_primary_key

Das Feld in der Quelltabelle, in der Regel das Feld "OID", das die Tabelle mit dem Feld "Quell-Fremdschlüssel" der Beziehungsklassentabelle verbindet.

String
origin_foreign_key

Das Feld in der Beziehungsklassentabelle, das die Tabelle mit dem Feld "Quell-Primärschlüssel" der Quelltabelle verbindet.

String
destination_primary_key
(optional)

Das Feld in der Quelltabelle, in der Regel das Feld "OID", das die Tabelle mit dem Feld "Ziel-Fremdschlüssel" der Beziehungsklassentabelle verbindet.

String
destination_foreign_key
(optional)

Das Feld in der Beziehungsklassentabelle, das die Tabelle mit dem Feld "Ziel-Primärschlüssel" der Zieltabelle verbindet.

String

Codebeispiel

Create Relationship Class – Beispiel (Python-Fenster)

Das folgende Skript im Python-Fenster veranschaulicht, wie das Werkzeug "Create Relationship Class" verwendet wird.

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")
Create Relationship Class – Beispiel 1 (eigenständiges Skript)

Es wird eine Beziehungsklasse zwischen einer Vegetation-Feature-Class und einer Tabelle mit zusätzlichen Vegetationsinformationen erstellt.

# 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)
Create Relationship Class – Beispiel 2 (eigenständiges Skript)

Es wird eine Beziehungsklasse zwischen einer Parcel-Feature-Class und einer Tabelle mit Besitzerinformationen erstellt.

# 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)

Umgebungen

Verwandte Themen

Lizenzinformationen

ArcView: Nein
ArcEditor: Ja
ArcInfo: Ja

11/13/2014