Skip to main content

更新属性关系类

任何关系类(无论是简单或复合或任何特定基数)都有属性。 当创建的关系类具有多对多基数或属性时,将会创建新中间表。

该中间表包含以下两个外键字段,该表中的每一行用于映射一个源对象和一个目标对象之间的关联。

  • 源外键 字段与源表或要素类中的主键字段关联。

  • 目标外键 字段与目标表或要素类中的主键字段关联。

例如,要帮助护林员和游客找到特定的活动(例如大提顿国家公园内各种设施点提供的游泳、徒步旅行和划船项目),在设施点要素类和活动独立表之间创建了多对多关系类。 在此场景中,蜥蜴溪野营地现在包含划船活动,需要将这些对象之间的关系添加到关系类中。

多对多关系需要使用可以存储关系本身属性的中间表。

设施点要素类和活动表之间的多对多 (M:N) 基数图显示,一个设施点可以托管多个活动,并且每项活动可以在多个设施点中执行。
提示:

想要深入了解属性关系类,以及它们如何应用于实际情境中,可以参阅 ArcGIS 博客文章 探索多对多关系类 。 该文章提供了更详细的工作流步骤,并包括了通过创建和填充多对多属性关系类维护公园数据有效性所需的数据。 下面的 访问中间表 和 添加对象之间的关系 部分包含使用本博客中提供的数据创建的图像。

在使用 创建关系类 工具创建中间表时,只会生成字段。 ArcGIS 不会自动将源对象与其目标对象关联,因此您必须手动添加对象之间的关系以填充行。 可在编辑会话中完成添加对象之间的关系,方式是:在两个参与对象类中选择相关要素或行,然后使用 属性 窗格将关系添加至中间表。 通过单击 编辑 选项卡中的 属性 按钮 属性 ,访问 属性 窗格。 将关系添加至中间表后,外键字段会使用相关主键值自动填充,并且可以在任何其他属性字段中输入数据。 必须对所有相关要素集重复此过程。

注:

创建属性关系类后,可以将其添加到地图中。 属性关系类将以表形式出现在 内容 窗格中,您可以打开并进行查看。 此外,在“字段”视图中,可以为这个中间表添加或移除用户定义字段。 但是,该中间表在地理数据库中未被识别为对象类。 因此,属性规则、域、子类型、条件值和默认值等地理数据库行为无法应用于此中间表或与此中间表一起使用。

访问中间表

在两个对象之间添加关系之前,必须首先在包含要关联对象的要素类或表之间创建关系类。 使用 ArcGIS Pro 中的 创建关系类 或 表转关系类 地理处理工具 创建属性关系类 。

创建属性关系类表 后,可访问此属性关系类的中间表。

请参阅下方的 添加对象之间的关系 部分,了解在 属性关系类 的中间表中添加行的步骤。

提示:

以下示例和图像使用可从 探索多对多关系类 ArcGIS 博客文章中下载的数据创建。

  1. 在 ArcGIS Pro 的 目录 窗格的 数据库 文件夹下,单击展开包含属性关系类的地理数据库。

    注:

    要在企业级地理数据库中的属性关系类中添加、删除或更新记录,您必须以关系类所有者的身份连接到企业级地理数据库。

  2. 或者,右键单击 目录 窗格中的关系类并单击 属性 。

    您可以从 常规 、 规则 和 管理 选项卡中 管理关系类属性 。

    关系类属性对话框

    提示:

    关系类属性 对话框上的 管理 选项卡下列出的地理数据库功能已启用,因为这些是属性关系类的属性。

  3. 右键单击 目录 窗格中的关系类,然后单击 添加到当前地图 。

    在 ArcGIS Pro 中添加属于地图的关系类时,为归属关系类创建的中间表将作为表添加到 内容 窗格中,并显示在 独立表 部分下。 该中间表的名称将与关系类的名称相同。

    内容窗格中属性关系类的中间表

  4. 右键单击在 目录 窗格中参与关系类的要素类或表,然后单击 添加到当前地图 。

  5. 或者,在 内容 窗格的 独立表 下,右键单击中间表,然后单击 打开 查看字段和属性。

    例如,如果使用 表转关系类 工具创建关系类,该工具需要使用有关该关系的其他属性填充现有表,则生成的中间表可能类似于以下内容。 在此示例中,此属性关系类的中间表包含设施点要素类和户外活动表之间的所有有效关系,其中 Facility_ID 字段是源外键, Activity_ID 字段是目标外键。

    使用“表转关系类”工具创建的属性关系类的中间表中填充的字段和属性

    如果使用 创建关系类 工具创建关系类,则中间表将仅包含必需的字段,并且必须填充这些字段中的值,因为 ArcGIS 不会映射源对象和目标对象之间的关联。 如果使用该工具创建属性关系类,则意味着必须手动填充中间表,生成的中间表可能类似于以下内容。

    只有必需的字段名称才会出现在使用“创建关系类”工具创建的属性关系类的中间表中。

添加对象之间的关系

您可以使用 属性 窗格 属性 添加两个对象之间的关系。 在多对多或属性关系类中,中间表映射并存储源对象与目标对象之间的关联。 当在这种类型的关系类中的两个对象之间创建关系时,新行将添加到该中间表中。 该行填充了源对象和目标对象中主键的值。

要添加对象之间的关系,请使用以下步骤在 属性关系类 的中间表中添加行。

  1. 在 编辑 选项卡的 选择 组中,单击 选择 工具 选择 。

  2. 使用 选择 工具 选择 交互选择相关的源对象及目标对象。 如果某个表要参与关系,则从 内容 窗格中选择 打开 以打开该表并选择所需的行。

    例如,使用本主题顶部的图像,设施点要素类中的蜥蜴溪野营地必须与户外活动表中的划船活动关联。 已选择蜥蜴溪野营地(源要素对象)和划船(目标要素对象)。

    选择的相关对象

  3. 在 编辑 选项卡上单击 属性 按钮 属性 以打开 属性 窗格。

    选定的源和目标要素将显示在 属性 窗格中。

    “属性”窗格中的选定要素

  4. 单击展开 属性 窗格中所选的源要素,然后右键单击关系类标注。

  5. 单击 将所选内容添加到关系 选项。

    将所选项添加到关系

    设施点要素类中的蜥蜴溪野营地已与户外活动表中的划船活动关联。

    • 属性 窗格将更新以显示所选源要素和目标要素之间添加的关系。

      更新的属性窗格

    • 行将添加到中间表中,外键字段填充相关主键值。

      更新的中间表

  6. 重复步骤 2 到 5,以使用对象间所有合适的关系填充之间表。

  7. 保存编辑内容以保存中间表中的关系和新数据。

    保存编辑内容

了解有关 关系类使用提示 和 修改关系类 可用选项的详细信息。