arcmap工具文件-資料管理工具之2——關係類(relationship class)
關係類可以定義地理資料庫中物件之間的關係,關係包括一對一、一對多或多對多的關係。一旦建立關係,某要素、某行記錄或某張表的增刪查改可能會對所聯絡的其他要素、記錄、表造成影響。關係可用於優化地理資料庫的邏輯結構,建立複雜的空間實體的空間要素與非空間要素之間的聯絡,非空間要素與非空間要素之間的聯絡。
2.1 建立關係類(CreateRelationshipClass)
2.1.1 描述
該工具可建立用於儲存源與目標之間的聯絡的關係類。源與目標可以是空間物件(如要素類中的要素)和空間物件、空間物件和非空間物件(表中的某行屬性記錄)或非空間物件和非空間物件。需要注意,一旦建立關係類,就無法對其進行修改,只能新增、刪除或優化關係類的邏輯規則。刪除、重新命名等操作需使用ArcCatalog軟體。
2.1.2 引數說明
param | optional | des | type |
---|---|---|---|
源表/origin_table | false | 與目標表相關聯的物件 | Table View |
目標表/destination_table | false | 與源表相關聯的物件 | Table View |
輸出關係類/out_relationship_class | false | 建立的關係類 | RelationshipClass |
關係型別/relationship_type | true | 要在物件間建立的關係型別: SIMPLE(default):獨立的物件之間的關係 COMPOSITE:互相依賴的物件之間的關係,在此關係中,一個物件的生存週期與另一物件之間的生存週期相關聯 |
String |
前向路徑標註/forward_label | false | 用於從源物件確定目標物件的唯一標識 | String |
後向路徑標註/backward_label | false | 用於從目標物件確定源物件的唯一標識 | String |
訊息方向/message_direction | true |
訊息在源物件和目標物件之間的傳遞方向。如當大樓被拆除時,歸屬大樓的商鋪一併刪除。 --->FORWARD:訊息由源傳向目標。 --->BACKWARD:訊息由目標傳向源。 --->BOTH:訊息先由源到目標,再由目標到源。 --->NONE(default):不傳遞任何訊息。 |
String |
基數/cardinality | true |
確定源的記錄和目標的記錄之間存在多少種關係。 --->ONE_TO_ONE(default):源中的每行可與目標中的零或一行相關聯。 --->ONE_TO_MANY:源中的每行可與目標中的一行或多行相關聯。 --->MANY_TO_MANY:源中多行可與目標中的一行或多行相關聯。 |
String |
關係類已屬性化/attributed | true | 指定關係是否具有屬性。 --->NONE(default):指定關係類將不具有屬性。 --->ATTRIBUTED:指定關係類將具有屬性。 | Boolean |
源主鍵/origin_primary_key | false | 與關係類表中的源外來鍵欄位相關聯的源表中的欄位。 | String |
源外來鍵/origin_foreign_key | false | 與源表中的源主鍵欄位相關聯的關係類表中的欄位。 | String |
目標主鍵/destination_primary_key | true | 與關係類表中的目標外來鍵相關聯的目標表中的欄位。 | String |
目標外來鍵/destination_foreign_key | true | 與目標表中的目標主鍵相關聯的關係類表中的欄位。 | String |
2.1.3 arcpy介面
arcpy.CreateRelationshipClass_management()
2.2 遷移關係類(MigrateRelationshipClass)
2.2.1 描述
將基於ObjectID的關係類遷移到基於GlobalID的關係類。輸入關係類中輸入的源物件和目標物件都必須具有一個GlobalID欄位,同時,現有輸入關係類必須基於ObjectID。
2.2.2 引數說明
param | optional | des | type |
---|---|---|---|
輸入關係類/in_relationship_calss | false | 基於ObjectID的關係類 | Relationship Class |
2.2.3 arcpy介面
arcpy.MigrateRelationshipClass_management()
2.3 錶轉關係類(Table to relationship class)
2.3.1 描述
從源表、目標表和關係表建立屬性關係類,在資料庫中建立一個包含關係表的所選屬性欄位的表,這些欄位用於儲存關係自身的屬性,不儲存源或目標物件的屬性。
2.3.2 引數說明
本工具除“關係表/relationship_table”和“屬性欄位/attribute fields”外其餘引數大多與2.1.2中的同名引數相對應,在此僅對六個引數引數進行說明,其餘引數不做贅述:
param | optional | des | type |
---|---|---|---|
關係表/relationship_table | false | 包含將被新增到關係類的屬性的表 | Table View |
屬性欄位/attribute_fields | false | 包含將被新增到關係類的屬性值的欄位 | Field/Array |
源主鍵/origin_primary_key | false | 將用於建立關係的源表中的欄位 | String |
源外來鍵/origin_foreign_key | false | 關係表中引用源表中的主鍵欄位的外來鍵欄位 | String |
目標主鍵/destination_primary_key | false | 將用於建立關係的目標表中的欄位 | String |
目標外來鍵/destination_foreign_key | false | 關係表中引用目標表中的主鍵的欄位 | String |
2.3.3 arcpy介面
arcpy.TableToRelationshipClass_management()