PostgreSQL 中地理数据库 (geodatabase) 内的属性域
属性域是适用于业务表中字段的规则。它们通过只允许在字段中输入为属性域所指定的值来实施数据完整性。属性域针对地理数据库而定义,可应用到多个要素类、表或子类型。
用户可定义两种类型的属性域 - 范围属性域和编码属性域。范围属性域仅适用于数值字段。有关属性域的说明,请参阅属性域快速浏览。
ArcGIS Desktop 中的属性域
在目录窗口中,可通过数据库属性 对话框访问地理数据库的属性域。右键单击地理数据库,然后单击属性。
在上面的示例中,为地理数据库定义的所有属性域的列表列出在对话框的顶部。Transportation_BridgeCategory 属性域在列表中为选中状态。显示的属性域属性和编码值与所选的这个属性域相关。如属性域属性中所示,Transportation_BridgeCategory 属性域是编码属性域。
如果将属性域应用到子类型,该属性域将列出在要素类属性 对话框的子类型选项卡中。右键单击要素类,然后单击属性。
Transportation_BridgeCategory 属性域目前应用于 TransportationL 要素类的 bridgecategory 字段。
在 ArcMap 中编辑 TransportationL 要素类的属性时,只能在 bridgecategory 字段中输入一个为 Transportation_BridgeCategory 属性域所指定的编码。
PostgreSQL 数据库中的属性域
在数据库中,所有属性域都存储在 gdb_items 系统表中。gdb_itemtypes 表中的字段将对象标识为属性域。
XML 工作空间文档中的属性域
在 XML 工作空间文档中,属性域用 Domain 标记括起。
以下代码示例是包含 Transportation_BridgeCategory 编码值属性域定义的 XML 工作空间文档的一部分:
<Domain xsi:type="esri:CodedValueDomain"> <DomainName>Transportation_BridgeCategory</DomainName> <FieldType>esriFieldTypeInteger</FieldType> <MergePolicy>esriMPTDefaultValue</MergePolicy> <SplitPolicy>esriSPTDuplicate</SplitPolicy> <Description /> <Owner>hbear</Owner> <CodedValues xsi:type="esri:ArrayOfCodedValue"> <CodedValue xsi:type="esri:CodedValue"> <Name>Unspecified</Name> <Code xsi:type="xs:int">0</Code> </CodedValue> <CodedValue xsi:type="esri:CodedValue"> <Name>Not Covered/Not Decked</Name> <Code xsi:type="xs:int">1</Code> </CodedValue> <CodedValue xsi:type="esri:CodedValue"> <Name>Covered/Not Decked</Name> <Code xsi:type="xs:int">2</Code> </CodedValue> <CodedValue xsi:type="esri:CodedValue"> <Name>Covered/Decked</Name> <Code xsi:type="xs:int">3</Code> </CodedValue> <CodedValue xsi:type="esri:CodedValue"> <Name>Not Covered/Decked</Name> <Code xsi:type="xs:int">4</Code> </CodedValue> <CodedValue xsi:type="esri:CodedValue"> <Name>Not Applicable</Name> <Code xsi:type="xs:int">99</Code> </CodedValue> </CodedValues> </Domain>
下面显示的是 XML 工作空间文档中范围属性域 RotAngle 的条目:
<Domain xsi:type="esri:RangeDomain"> <DomainName>RotAngle</DomainName> <FieldType>esriFieldTypeInteger</FieldType> <MergePolicy>esriMPTDefaultValue</MergePolicy> <SplitPolicy>esriSPTDuplicate</SplitPolicy> <Description>Valid rotation angles</Description> <Owner>hbear</Owner> <MaxValue xsi:type="xs:double">359</MaxValue> <MinValue xsi:type="xs:double">0</MinValue> </Domain>