字段构成了表的结构。 每个表都必须包含字段。 例如,您可以创建一个定义了字段但不包含任何行(记录)的空表。
在数据库中,字段可用于维系表之间的关系。 只需在两个表或多个表中创建相互匹配的字段即可。 例如,如果在数据库中存储了一个名为 toy_store 的表,同时还存储了一个用于追踪各店雇员信息的 staff 表,那么您便可以在两表之间创建一个公用字段,该字段将填入诸如商店 ID 一类的信息。 特定玩具店的商店 ID 值在两表中是相同的。
如下所示,STORE_ID 字段已添加到 toy_store 表:
toy_store 表通过商店 ID 链接到 Employee 表。 下表显示了 The Play House 的三名雇员:
某些字段还用于维系表及其属性索引之间的关系。
表中的字段使用相同的数据类型存储同一类别的数据。 例如,如果在客户表中有一个 CUSTOMER_NAME 字段,则该字段的输入内容将是所有客户的姓名,并以文本形式进行存储。 需确保输入的内容清晰;即您不可以在此字段中放置一条客户姓名记录,同时又在其中放置一条产品名称记录。
在创建表或向现有表添加字段时,您可定义各字段使用哪种数据类型存储数据。 在某些情况下,还可指定字段的长度。
字段名称
字段名称是为表中各列指定的名称。 名称应指明各列中所包含的数据。 例如,在 ArcGIS 中创建要素类时,表中将填充一个 ObjectID 字段和一个 shape 字段。 ObjectID 字段包含要素类中每个对象的唯一 ID 编号。 shape 字段定义了要素类中存储的形状类型:点、线、面、多点或多面体。
也可以使用固定短语来指示列的类型。 例如,如果在表中创建一个单独的唯一 ID 以便用于建立索引,则可将字段命名为 ID_UK,其中 UK 表示这是唯一键字段。
同一表中的字段名称必须唯一,例如,不能存在名称都是 ObjectID 的两个字段。 字段名称还必须以字母开头,并且不得包含空格或保留字。 有关数据库特定限制的详细信息,请参阅文件地理数据库的大小和名称限制、移动地理数据库的大小和名称限制或 ArcGIS 中的数据库和云数据仓库数据。
对于某些字段名称,在 ArcGIS 中会显示其在企业级地理数据库存储表中的全限定名称。 例如,如果创建或导入了一个包含名为 Area 的字段的面要素类,则会在该名称前追加数据库、方案和表名称。 该名称即您在要素类的属性表中看到的名称。 也就是说,对于 museum 数据库的 prof 方案中所存储的名为 archsites 的面要素类,其 Area 字段将显示为 MUSEUM.PROF.ARCHSITES.AREA。
以下列出了企业级地理数据库中包含的所有完全限定的字段名称:
- FID
- AREA
- LEN
- POINTS
- NUMOFPTS
- ENTITY
- EMINX
- EMINY
- EMAXX
- EMAXY
- EMINZ
- EMAXZ
- MIN_MEASURE
- MAX_MEASURE
对于这种情况,可能要考虑使用不同的字段名称或字段别名。
重命名字段
可在字段视图中重新命名表或要素类中的各个字段。
要重命名字段,可在目录窗格中右键单击该要素类或该表,然后单击数据设计 > 字段。 随即打开字段视图,在此您可对字段属性进行修改。 双击要更改的字段名称单元格,然后键入新的字段名称。 要提交这些更改,请单击字段选项卡更改组中的保存按钮 。
无法重命名以下字段:
- ObjectID 和全局 ID 字段
- 任何与形状相关的字段;形状、形状长度、形状面积
- 网络要素类的启用字段、辅助角色字段或网络权重字段
- 制图表达字段
- 参与网络数据集、Terrain 或宗地结构的要素类中的字段
- 用于编辑器追踪的字段
- 关系类主键和外键字段
- 子类型字段
- 栅格字段
字段名称规则和限制
下表列出了受支持的字段名称字符规则:
字符 | 名称开头 | 其他位置 | 别名中 |
---|---|---|---|
字母 (A-Z) | |||
下划线 ( _ ) | |||
数字 (0-9) | |||
空间 | |||
符号(下划线除外) | |||
上标字母和数字 | |||
下标字母和数字 |
其他字段名称规则和限制如下:
- 字段名称中不能包含保留字,如 all 或 result。
有关其他保留字,请查阅数据库管理系统 (DBMS) 文档。
- 字段(列)名称的长度取决于基础数据库。
有关数据库特定限制的详细信息,请参阅文件地理数据库的大小和名称限制、移动地理数据库的大小和名称限制或 ArcGIS 中的数据库和云数据仓库数据。
注:
有关详细信息,请参阅定义要素类属性中的要素类和表名称规则和限制汇总表。
字段别名
字段别名用于为字段指定备用名称。 通常使用尽可能简短的字段名称来指示该字段中所存储的数据。 字段名称中不能使用空格或特殊字符,而且某些字段将在表中显示其完全限定名称。 在这些情况下,您可使用字段别名为字段指定一个更具描述性的名称。 例如,如果您有一个名为 ST_SUFX 的字段,该字段用于存储街道的类型,并通过街道名称中使用的后缀来表示街道类型,则可为该字段指定别名 Street name suffix。
提示:
用于验证表名和字段名的地理处理方法。 有关详细信息,请参阅验证 Python 中的表和字段名称。
使用属性域控制字段值
属性域是判断地理数据库中表的字段有效值的规则。 它们通过限制用户添加至指定字段的数据值来强制保持数据完整性。
仅在字段有可定义的一组或一系列特定值时,您才可对该字段应用属性域。例如,很难向存储“您最喜欢的食物是什么?”这一调查问题的答案的字段 应用域,因为可能存在大量不同的回答。然而,用于存储眼睛颜色数据的字段可以给它分配属性域,因为只有几个可能的有效值。
- Black
- 褐色
- 蓝色
- 绿色
- 红褐色
- 灰色
- 紫罗兰色
针对存储眼睛颜色数据的字段使用属性域可确保值的一致性。 如果允许数据采集员在文本字段中为眼睛颜色输入任意一种颜色,则蓝色眼睛可能会变成以下某种颜色:
- 蔚蓝色
- 海军蓝
- 天蓝色
- 深蓝色
- 蓝绿色
属性域的设置还可防止出现拼写错误或排字错误。 即使数据采集员知道应该使用 blue 一词表示蓝色眼睛,但也可能将单词拼写错误 (bleu) 或在文本字段中输入单词 (vlue) 时不小心输入错了字母。
属性域的类型
用于限制字段值的属性域有以下两种类型:编码值属性域和值域范围。
编码值属性域
编码值属性域使用代码为存储离散数据的字段定义一组允许值 对于多数字段数据类型都可使用编码值属性域。
注:
- 日期、仅日期和仅时间字段类型上的域仅支持基于秒的精度。
- 编码值和范围不支持全局 ID、对象 ID、Blob、栅格和时间戳偏移字段上的域。
对于眼睛颜色字段,您可以使用以下示例代码集之一创建一个编码域:
- 示例 1
- Blk = 黑色
- Brn = 褐色
- Blu = 蓝色
- Grn = 绿色
- Hzl = 红褐色
- Gra = 灰色
- Vlt = 紫色
- 示例 2
- 1 = 黑色
- 2 = 褐色
- 3 = 蓝色
- 4 = 绿色
- 5 = 红褐色
- 6 = 灰色
- 7 = 紫色
值域范围
范围属性域用于定义字段所允许的数值范围
字段必须为数字或日期数据类型时才能使用值域范围。 可将值域范围应用于短整型、长整型、大整型、浮点型、双精度浮点型、日期、仅日期和仅时间字段类型。 例如,如果某个字段存储动物园中西部低地大猩猩个体活胎的出生体重数据,则该字段示例可应用值域范围。 其范围将为最低重量 (1 kg) 至最高重量 (2.5 kg)。
使用子类型
子类型是对地理数据库中的某种要素类或表的细分。 它们可用于根据数据的唯一特征或行为对要素进行分组。 此特征或行为由表中某一字段的值表示。 例如,对水文表而言,不同类型的水道(如小溪、溪流、河道、运河和河流)都可以拥有子类型。 对于每个子类型,可以应用不同的拓扑规则、连通性规则、默认值以及关系规则。
使用子类型存储各组相关要素可以改善查询的性能。 如果在单个要素类中存储了不同类型的数据,而不是使用子类型,则在数据库中将存在更多的要素类,而且搜索可能会需要更长时间。
当使用子类型时,可以使用以下规则:
- 只能将子类型应用于表或要素类中的一个字段。
- 要应用子类型的字段必须是长整型或短整型字段。
- 可对不同子类型应用不同的拓扑规则和关系规则。
- 您可以基于子类型对表中的其他字段应用不同的属性域或编码域。
注:
需针对字段的特定子类型应用属性域。