SQL Server 中地理数据库中的属性域

属性域是适用于业务表中字段的规则。它们通过只允许在字段中输入为属性域所指定的值来实施数据完整性。属性域针对地理数据库而定义,可应用到多个要素类、表或子类型。

用户可定义两种类型的属性域 - 范围属性域和编码属性域。范围属性域仅适用于数值字段。有关属性域的说明,请参阅属性域快速浏览

ArcGIS for Desktop 中的属性域

在目录窗口中,可通过数据库属性 对话框访问地理数据库的属性域。右键单击地理数据库,然后单击属性

“数据库属性”对话框中的属性域

在上面的示例中,为地理数据库定义的所有属性域的列表列出在对话框的顶部。FittingType 属性域在列表中为选中状态。显示的属性域属性编码值与所选的这个属性域相关。如属性域属性中所示,FittingType 属性域是编码属性域。

如果将属性域应用到子类型,该属性域将列出在要素类属性 对话框的子类型选项卡中。右键单击要素类,然后单击属性

应用到要素类的子类型的属性域

FittingType 属性域目前应用于 Fittings 要素类的 SUB_TYPE 字段。

在 ArcMap 中编辑 Fittings 要素类的属性时,只能在 SUB_TYPE 字段中输入一个为 FittingType 属性域所指定的编码。

属性字段的编码属性域列表
SUB_TYPE 属性字段的编码属性域列表

SQL Server DBMS 中的属性域

在数据库中,所有属性域都存储在 GDB_ITEMS 系统表中。GDB_ITEMTYPES 表中的字段将对象标识为属性域。

XML 工作空间文档中的属性域

在 XML 工作空间文档中,属性域用 Domain 标记括起。

以下代码示例是包含 FittingType 编码值属性域定义的 XML 工作空间文档的一部分:

<Domain xsi:type="esri:CodedValueDomain">
  <DomainName>FittingType</DomainName> 
  <FieldType>esriFieldTypeString</FieldType> 
  <MergePolicy>esriMPTDefaultValue</MergePolicy> 
  <SplitPolicy>esriSPTDuplicate</SplitPolicy> 
  <Description>Valid fitting type codes</Description> 
  <Owner>RJP</Owner> 
  <CodedValues xsi:type="esri:ArrayOfCodedValue">
    <CodedValue xsi:type="esri:CodedValue">
      <Name>Tee</Name> 
      <Code xsi:type="xs:string">TEE</Code> 
    </CodedValue>
    <CodedValue xsi:type="esri:CodedValue">
      <Name>Sleeve</Name> 
      <Code xsi:type="xs:string">SLV</Code> 
    </CodedValue>
    <CodedValue xsi:type="esri:CodedValue">
      <Name>Reduser</Name> 
      <Code xsi:type="xs:string">RED</Code> 
    </CodedValue>
    <CodedValue xsi:type="esri:CodedValue">
      <Name>Expansion joint</Name> 
      <Code xsi:type="xs:string">EOP</Code> 
    </CodedValue>
    <CodedValue xsi:type="esri:CodedValue">
      <Name>Cross</Name> 
      <Code xsi:type="xs:string">CRS</Code> 
    </CodedValue>
    <CodedValue xsi:type="esri:CodedValue">
      <Name>Bend</Name> 
      <Code xsi:type="xs:string">BEND</Code> 
    </CodedValue>
    <CodedValue xsi:type="esri:CodedValue">
      <Name>Cap</Name> 
      <Code xsi:type="xs:string">CAP</Code> 
    </CodedValue>
    <CodedValue xsi:type="esri:CodedValue">
      <Name>Coupling</Name> 
      <Code xsi:type="xs:string">CPL</Code> 
    </CodedValue>
    <CodedValue xsi:type="esri:CodedValue">
      <Name>Offset</Name> 
      <Code xsi:type="xs:string">OFF</Code> 
    </CodedValue>
    <CodedValue xsi:type="esri:CodedValue">
      <Name>Plug</Name> 
      <Code xsi:type="xs:string">PLG</Code> 
    </CodedValue>
    <CodedValue xsi:type="esri:CodedValue">
      <Name>Saddle</Name> 
      <Code xsi:type="xs:string">SDL</Code> 
    </CodedValue>
    <CodedValue xsi:type="esri:CodedValue">
      <Name>Tap</Name> 
      <Code xsi:type="xs:string">TAP</Code> 
    </CodedValue>
    <CodedValue xsi:type="esri:CodedValue">
      <Name>Weld</Name> 
      <Code xsi:type="xs:string">WLD</Code> 
    </CodedValue>
    <CodedValue xsi:type="esri:CodedValue">
      <Name>Riser</Name> 
      <Code xsi:type="xs:string">RIS</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>RJP</Owner> 
  <MaxValue xsi:type="xs:double">359</MaxValue> 
  <MinValue xsi:type="xs:double">0</MinValue> 
 </Domain>
5/10/2014