预订演示

请注意 : 本帮助页面不适用于最新版本的Enterprise Architect. 最新的帮助文档在这里.

前页 后页

外键

外键定义一列(或列的集合),用于强制两个表之间的关系。数据库服务器负责强制执行此关系以确保数据完整性。外键的模型定义由一个父表(主表)组成,该表包含一组唯一的数据,然后在子表(外表)中进行引用。

在Enterprise Architect ,外键是使用两个不同(但相关)的UML组件UML :

  • 存储在子表上的外键约束( UML型为<< FK >>的UML操作)和
  • 定义两个表之间关系的关联连接器(构造型为<< FK >>)

创建外键

尽管外键的定义可能很复杂,但“外键约束”屏幕简化了外键的建模。该屏幕经过专门设计,可帮助您选择要使用的父表约束,并将子表列与作为约束一部分的父表中的列自动匹配。此处分别描述了开发外键的过程的不同方面,以进行说明,但是整个过程应该是平稳的过渡。

必须先满足许多条件,才能保存外键定义:

  • 两个表都必须定义匹配的DBMS
  • 父表必须至少具有一列
  • 父表必须具有主键,定义的唯一约束或唯一索引

创建外键-使用数据库生成器

行动

也可以看看

1个

在数据库构建器树中,右键单击子表名称,然后单击“在<表名称>上添加新外键”。

将显示一个对话框,列出所有可能的父表。

2

双击列表中所需的父表名称,或选择它,然后单击“确定”按钮。

显示“外键约束”屏幕。

创建外键-使用关系图

行动

也可以看看

1个

在“数据建模”图中,找到所需的子(外键)表和父(主键)表。

2

在图工具箱的“数据建模”页面中选择关联连接器。

3

单击子表,然后将连接器绘制到父表。

4

如果将“外键约束”屏幕设置为在连接两个表时自动显示,则现在显示。否则,要么:

  • 双击连接器或
  • 右键单击连接器,然后选择“外键”选项
显示外键约束屏幕。
DDL名称模板

外键约束屏幕

作为示例,此图显示了外键约束屏幕,其中装有“ fk_customersaddresses_customers”的详细信息(如示例模型中所定义)。

Showing an example foreign key constraint in Sparx Systems Enterprise Architect.

选项

行动

也可以看看

加入约束

该组合框列出了父表中所有可用作外键基础的已定义约束。 (这些约束可以是主键,唯一约束或唯一索引。)

默认情况下,列表中的第一个约束处于选中状态。如果这不是您想要的约束,请从组合框中选择正确的约束。

选择约束时,其列将自动列在“涉及的列”面板的“父项:<表名>”列下。

涉及列

此列表分为两部分:所选约束所涉及的列在左侧列出,而要与父列配对的子列在右侧列出。

当选择约束时(在“联接约束”字段中),刷新父侧以显示分配给所选约束的所有列。在子方面,系统将自动尝试将每个父列与子表中的相同名称之一进行匹配。如果子表没有相同名称的列,则该名称的新列将添加到列表中,并带有(*)标记,表示将在表中创建一个新列。

但是,如果要强制与现有子表列或具有不同名称的新列配对,请单击列名称字段,然后单击以下任一:

  • 输入替换名称,或
  • 选择一个现有的列(单击下拉箭头,然后从列表中选择名称)

名称

该字段定义外键约束的名称,并且默认为由外键名称模板构造的名称。

要将名称更改为默认名称以外的其他内容,只需覆盖该值。

DDL名称模板

删除时

选择删除父表中的数据时应对子表中的数据执行的操作,以保持引用完整性。

更新时

选择在更新父表中的数据时应对子表中的数据执行的操作,以保持引用完整性。

父母

单击下拉箭头,然后在外键中选择父表的基数。

儿童

单击下拉箭头,然后在外键中选择子表的基数。

创造?

如果要与外键同时创建外键索引,请将此属性设置为True。

外键索引的名称由外键索引模板控制,生成的名称显示在“创建?”下方的“名称”字段中。领域。

DDL名称模板

联接表后自动显示此屏幕

(对于图形建模)选中此复选框可在两个表之间创建关联时自动显示此屏幕。

删除

单击此按钮删除当前选择的现有(已保存)外键。

显示提示确认删除(如果存在则删除外键索引)-单击“是”按钮。

删除外键会将关联连接器保留在适当的位置,您可以对其进行编辑或删除(右键单击并选择“将关联:删除到<表名称>”)。

单击此按钮保存外键。

例子

此示例在图中显示了简单的外键:

A physical data model using Information Engineering connectors between tables, in Sparx Systems Enterprise Architect.

相同的外键将在数据库构建器的树中显示为表“ customers.addresses”下的子节点。

Showing a foreign key in the Database Builder tree in Sparx Systems Enterprise Architect.

学到更多