リレーションシップ クラスの作成(Create Relationship Class) (データの管理)

サマリ

このツールは、関連元のテーブルと関連先のテーブルのフィールドまたはフィーチャ間の関連性を格納するためのリレーションシップ クラスを作成します。

使用法

構文

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関連元テーブル内の各行またはフィーチャに、関連先テーブル内の 0 個または 1 個の行またはフィーチャを関連付けることができます。これがデフォルトです。
  • ONE_TO_MANY関連元テーブル内の各行またはフィーチャに、関連先テーブル内の 1 個または複数の行またはフィーチャを関連付けることができます。
  • MANY_TO_MANY関連元テーブル内の複数の行またはフィーチャに、関連先テーブル内の 1 個または複数の行またはフィーチャを関連付けることができます。
String
attributed

リレーションシップに属性が含まれるかどうかを指定します。

  • NONEリレーションシップ クラスに属性が含まれないことを示します。これがデフォルトです。
  • ATTRIBUTEDリレーションシップ クラスに属性が含まれることを示します。
Boolean
origin_primary_key

リレーションシップ クラス テーブル内の関連元外部キー フィールドにリンクしている、関連元テーブル内のフィールド(通常は OID フィールド)。

String
origin_foreign_key

関連元テーブル内の関連元主キー フィールドにリンクしている、リレーションシップ クラス テーブル内のフィールド。

String
destination_primary_key
(オプション)

リレーションシップ クラス テーブル内の関連先外部キー フィールドにリンクしている、関連先テーブル内のフィールド(通常は OID フィールド)。

String
destination_foreign_key
(オプション)

関連先テーブル内の関連先主キー フィールドにリンクしている、リレーションシップ クラス テーブル内のフィールド。

String

コードのサンプル

Create Relationship Class(リレーションシップ クラスの作成)の例(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")
Create Relationship Class(リレーションシップ クラスの作成)の例 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)
Create Relationship Class(リレーションシップ クラスの作成)の例 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)

環境

関連項目

ライセンス情報

ArcView: いいえ
ArcEditor: はい
ArcInfo: はい

7/10/2012