Skip to main content

创建属性关系类

可在空间对象之间、非空间对象之间或空间对象与非空间对象之间建立关系。 在创建关系类时,可以指定是否设置关系类的属性。 属性关系类可存储附加属性值以及与关系类本身相关的详细信息。

在 ArcGIS Pro 中,可以使用 创建关系类 或 表转关系类 地理处理工具创建 属性关系类 。

对比“创建关系类”和“表转关系类”地理处理工具

根据对各地理处理工具的审查结果, 创建关系类 和 表转关系类 地理处理工具在功能上大致相同。 两个工具均能够创建关系类,并允许用户设置关系类的类型、基数以及指定主键和外键字段。

但是,它们在创建属性关系类时所采用的参数有所区别。

  • 创建关系类 工具既可以创建属性关系类,也可以创建非属性关系类。 当利用该工具创建属性关系类时,会生成一个中间表。 但这个中间表仅包含必需字段,并不会自动填充数据,因为 ArcGIS 并不自动映射源对象与目标对象之间的关联。 如果使用该工具创建属性关系类,则意味着用户需要手动 填充中间表 。

    在 创建关系类 工具中,有一个附加参数:

    • 关系类属性化 ,选中后会创建一个只包含必需字段的中间表。

      注:

      关系类属性化 是 创建关系类 工具的可选参数,仅在创建属性关系类时需要选中。

  • 表转关系类 工具专用于创建属性关系类。 此属性关系类的中间表会根据用户从现有关系表中选定的属性字段来填充数据。 这些属性字段不仅包括创建非属性关系类所需的关系属性,还包括额外的关系属性。 这些字段用于记录不属于源类或目标类属性的关系自身的信息。 例如,在宗地与所有者的关系类中,可以将每个所有者持有的宗地的所有权百分比作为关系属性进行存储。

    表转关系类 工具包含以下额外参数:

    • 关系表 - 一个已存在的表,其中包含将要添加到关系类中的属性。

    • 属性字段 - 关系表 中的字段名称,这些字段包含的属性值将会被添加到属性关系类的中间表中。

      注:

      在使用 表转关系类 工具时, 关系表 和 属性字段 是必需参数。 这些属性和属性字段将被添加到新创建的属性关系类的中间表中。

      “创建关系类”和“表转关系类”地理处理工具之间的差异

在开始创建属性关系类之前,请查看 准备创建关系类 中的地理数据库关系类的考虑因素。

以下是利用 创建关系类 工具创建属性关系类的步骤:

提示:
  • 文件、移动和企业级地理数据库都支持关系类。 要创建属性关系类,可以右键单击现有地理数据库或地理数据库中的要素数据集。 如果要在企业级地理数据库中创建关系类,连接到企业级地理数据库的用户身份必须具有在数据库中创建数据的权限。

  • 想要深入了解属性关系类,以及它们如何应用于实际情境中,可以参阅 ArcGIS 博客文章 探索多对多关系类 。 该文章提供了更详细的工作流步骤,并包括了通过创建多对多关系类维护公园数据有效性所需的数据。

  1. 启动 ArcGIS Pro,然后打开现有 ArcGIS Pro 工程,或者在没有模板的情况下开始。

  2. 在 目录 窗格中,右键单击现有地理数据库,然后从快捷菜单中单击 新建 。

    在 ArcGIS Pro 的“目录”窗格中,右键单击现有地理数据库时,会弹出快捷菜单。

  3. 选择 关系类 关系 。

    用于创建地理数据库中对象的快捷菜单选项

    将显示具有默认设置的 创建关系类 地理处理工具对话框。

    “创建关系类”地理处理工具

    注:

    或者,可以通过 表转关系类 工具,使用包含关系属性的现有中间表来创建关系类。

  4. 对于 源表 ,可以从列表中选择数据集或使用浏览按钮进行选择。

    “创建关系类”地理处理工具上的“源表”参数

  5. 对于 目标表 ,可以从列表中选择数据集,或使用浏览按钮进行选择。

    “创建关系类”地理处理工具上的“目标表”参数

  6. 对于 输出关系类 ,单击浏览按钮 浏览 并浏览到将存储关系类的地理数据库。 对于 名称 ,提供关系类的名称并单击 保存 。

    从“输出关系类”对话框浏览到将存储关系类的地理数据库。

    “创建关系类”地理处理工具上的输出要素类名称和位置参数

    在本例中,源表和目标表位于名为 Wyoming Natural Assets.geodatabase 的移动地理数据库中。 因此,关系类也必须位于该移动地理数据库中。 由于 移动地理数据库 (.geodatabase) 是建立在 SQLite 之上的,因此关系类名称会自动添加前缀“main”,以表明它属于主模式,而主模式是 SQLite 数据库的默认模式。

  7. 对于 关系类型 ,选择 简单 。

    此示例的关系类类型设置为简单。

    要进一步了解简单关系类和复合关系类之间的区别,请参阅 地理数据库关系类类型 。

  8. 输入此关系类的 前向路径标注 和 后向路径标注 参数的标注。

    “前向路径标注”与“后向路径标注”参数用于描述表或要素类之间关系的导航路径。

    前向路径标注 参数用于描述在从源类导航至目标类时的关系。 而 后向路径标注 参数则用于描述从目标类向源类反向导航时的关系。 有关这些标注的更多信息,请参阅 创建关系类工具参数 。

  9. 由于您要创建的是简单关系类,因此在 消息方向 参数中应选择 无 。

    消息方向 参数用于描述相关对象间消息传递的方向。 请参阅 创建关系类工具参数 以了解有关关系类 消息方向 参数的详细信息。

  10. 对于 基数 ,选择适合关系类中参与的数据的基数选项。

    关系类的基数描述了源中有多少对象与目标中的多少对象相关。

    关系类的基数描述了源中有多少对象与目标中的多少对象相关。 对于属性关系类,支持的 基数 选项包括:

    • 一对一 (1:1) :源表中的每个行或要素可以与目标表中的零个或一个行或要素相关联。 这是默认设置。

    • 一对多 (1:M) :源表中的每个行或要素可以与目标表中的一个或多个行或要素相关联。

    • 多对一 (M:N) :源表中的多个行或要素可以与目标表中的多个行或要素相关联。

    有关 基数 的更多信息,请参阅 创建关系类工具参数 。

  11. 根据您所使用的具体工具,执行以下步骤:

    • 若使用 创建关系类 工具,请选中 关系类属性化 参数旁的复选框。

      “创建关系类”地理处理工具上的“关系类”为属性参数

    • 若使用 表转关系类 工具,对于 关系类 参数,请将 浏览 导航至包含关系类属性值的现有表的位置。

      提示:

      在属性关系中, 关系表 必须含有充当源和目标要素类或表外键的字段。 这些外键字段将与源和目标的主键字段相对应。

      对于 属性字段 ,需从 关系表 参数中选择包含要添加到关系类中的属性值的字段名称。 这些字段将出现在 关系表 参数值和中间表中。

      “表转关系类”地理处理工具中的“关系表”参数

  12. 指定属性关系类将使用的键字段,这些字段用于将中间表中 源外键 和 目标外键 字段值映射到相关源表或要素类的 源主键 和 目标主键 字段值。

    • 源主键 - 对于多对多或属性关系类,这是源表中链接到中间表中 源外键 字段的字段。

    • 源外键 - 对于一对多或属性关系类,这是中间表中链接到源表中 源主键 字段的字段。

    • 目标主键 - 目标表中链接到中间表中 目标外键 字段的字段。 对于多对多或属性关系类,该值为必需项。

    • 目标外键 - 中间表中链接到目标表中 目标主键 字段的字段。 对于多对多或属性关系类,该值为必需项。

      注:

      键字段可能具有不同的名称,但必须具有相同的 字段数据类型 并且包含相同类型的信息,例如宗地 ID。 除了二进制大对象 (BLOB)、日期和栅格之外,所有数据类型的字段都可能是键字段。

  13. 单击 运行 创建属性关系类。

    注:

    也可以通过单击 运行 下拉菜单并选择 计划运行 来在未来的某个时间点运行该工具,并可设置循环运行。

    计划运行

    了解有关计划地理处理工具的详细信息

了解如何检查和填充属性关系类表