预订演示
前页 后页

外键

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

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

  • 存储在子库表中A外键约束(具有 <<FK>> 原型的UML操作)
  • 定义两者之间关系的关联连接器(<<FK>> 的刻板印象)表

创建外键

虽然外键的定义可能很复杂,但外键约束屏幕简化了外键的建模。此屏幕旨在帮助您选择要使用父库表中的哪个约束,并且会自动将子库表列与父库表中属于约束的列进行匹配。为了说明,这里分别描述了开发外键过程的不同方面,但整个过程应该是一个平稳的过渡。

A保存外键定义之前,必须满足许多条件:

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

创建外键 - 使用数据库

行动

也见

1

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

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

2

双击列表中所需的父库表名称或选择它并单击确定按钮。

显示“外键约束”屏幕。

创建外键 - 在图表上使用关系

行动

也见

1

在数据建模图中,找到需要的child(Foreign Key)库表和parent(Primary Key)库表。

2

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

3

单击子库表并将连接器绘制到父库表。

4

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

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

外键约束屏幕

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

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

选项

行动

也见

汇合关于约束

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

默认选择列表中的第一个约束;如果这不是您想要的约束,请从组合框中选择正确的约束。

当您选择约束时,它的列会自动列在“涉及的列”面板中的“父级:<tablename>”列下。

涉及的列

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

When a constraint is selected (in the '汇合on constraint' field) the parent side is refreshed to display all columns assigned to the selected constraint.在子方面,系统将自动尝试将每个父列与子库表中的同名列匹配。如果子库表没有同名的列,则该名称的新列将被添加到列表中,用(*)标记表示将在库表中创建一个新列。

但是,如果您想强制配对到现有的子库表列或具有不同名称的新列,请单击列名称字段,然后:

  • 替换名称中的类型,或
  • 选择现有列(单击下拉箭头并从列表中选择名称)

名称

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

要将名称更改为默认值以外的名称,只需改写该值即可。

DDL名称模板

关于删除

选择删除父级数据时对子库表中的数据应采取的动作,以保持参照完整性。

更新时

选择当父项中的数据更新时对子库表中的数据应采取的动作,以保持参照完整性。

家长

单击下拉箭头并在外键中选择父库表的基数。

单击下拉箭头并在外键中选择子库表的基数。

创造?

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

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

DDL名称模板

加入库表时自动显示此画面

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

删除

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

将显示A提示以确认删除(以及外键索引的删除,如果存在) - 单击是按钮。

删除外键会留下一个关联连接器,您可以对其进行编辑或删除(右键单击并选择“删除关联:到 <库表名称>”)。

确定

单击此按钮以保存外键。

例子

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

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.

了解更多