Créer une classe de relations (Gestion des données)

Niveau de licence :De baseStandardAvancé

Récapitulatif

Cet outil crée une classe de relations pour stocker une association entre des champs ou des entités de la table d'origine et de la table de destination.

Utilisation

Syntaxe

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})
ParamètreExplicationType de données
origin_table

Table ou classe d'entités à associer à la table de destination.

Table View
destination_table

Table à associer à la table d'origine.

Table View
out_relationship_class

Classe de relations à créer.

Relationship Class
relationship_type

Type de relation à créer entre les tables d'origine et de destination.

  • SimpleRelation entre objets indépendants (parent vers parent). Il s'agit du paramétrage par défaut.
  • COMPOSITERelation entre des objets dépendants où l'existence d'un objet contrôle l'existence de l'objet lié (parent vers enfant).
String
forward_label

Nom permettant d'identifier de façon unique la relation lors de la navigation depuis la table d'origine vers la table de destination.

String
backward_label

Nom permettant d'identifier de façon unique la relation lors de la navigation depuis la table de destination vers la table d'origine.

String
message_direction

Sens dans lequel les messages sont transmis entre les tables d'origine et de destination. Par exemple, dans une relation entre des pylônes et des transformateurs, lorsqu'un pylône est supprimé, un message est transmis aux objets transformateurs auxquels il est lié pour indiquer que le pylône a été supprimé.

  • FORWARDLes messages sont transmis depuis la table d'origine vers la table de destination.
  • BACKLes messages sont transmis depuis la table de destination vers la table d'origine.
  • BOTHLes messages sont transmis depuis la table d'origine vers la table de destination et vice-versa.
  • NONEAucun message transmis. Il s'agit du paramétrage par défaut.
String
cardinality

Détermine le nombre de relations existant entre les lignes ou entités dans l'origine et les lignes ou entités de la table de destination.

  • ONE_TO_ONEChaque ligne ou entité de la table d'origine peut être mise en relation avec zéro ou une ligne ou entité de la table de destination. Il s'agit du paramétrage par défaut.
  • ONE_TO_MANYChaque ligne ou entité de la table d'origine peut être mise en relation avec une ou plusieurs lignes ou entités de la table de destination.
  • MANY_TO_MANYPlusieurs champs ou entités de la table d'origine peuvent être mis en relation avec une ou plusieurs lignes ou entités de la table de destination.
String
attributed

Spécifie si la relation a des attributs.

  • NONEIndique que la classe de relations n'aura pas d'attributs. Il s'agit du paramétrage par défaut.
  • ATTRIBUTEDIndique que la classe de relations aura des attributs.
Boolean
origin_primary_key

Le champ de la table d'origine, généralement le champ OID, qui le lie au champ Clé étrangère d'origine de la table de classe de relations.

String
origin_foreign_key

Le champ dans la table de classe de relations qui le lie au champ Clé primaire d'origine dans la table d'origine.

String
destination_primary_key
(Facultatif)

Le champ de la table de destination, généralement le champ OID qui le lie au champ Clé étrangère de destination de la table de classe de relations.

String
destination_foreign_key
(Facultatif)

Le champ de la table de classe de relations qui le lie au champ Clé primaire de destination de la table de destination.

String

Exemple de code

Exemple d'utilisation de l'outil CreateRelationshipClass (fenêtre Python)

Le script de fenêtre Python ci-dessous illustre l'utilisation de l'outil CreateRelationshipClass.

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")
Exemple 1 d'utilisation de l'outil CreateRelationshipClass (script autonome)

Créer une classe de relations entre une classe d'entités de végétation et une table avec des informations de végétation supplémentaires.

# 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)
Exemple 2 d'utilisation de l'outil CreateRelationshipClass (script autonome)

Créer une classe de relations entre une classe d'entités parcelles et une table avec des informations sur les propriétaires.

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

Environnements

Thèmes connexes

Informations de licence

ArcGIS for Desktop Basic : Annuler
ArcGIS for Desktop Standard : Oui
ArcGIS for Desktop Advanced : Oui
9/12/2013