前页 | 后页 |
外键
外键定义一列(或列的集合),用于强制两个表之间的关系。数据库服务器负责强制执行此关系以确保数据完整性。外键的模型定义由一个父表(主表)组成,该表包含一组唯一的数据,然后在子表(外表)中进行引用。
在Enterprise Architect ,外键是使用两个不同(但相关)的UML组件UML :
- 存储在子表上的外键约束( UML型为<< FK >>的UML操作)和
- 定义两个表之间关系的关联连接器(构造型为<< FK >>)
创建外键
尽管外键的定义可能很复杂,但“外键约束”屏幕简化了外键的建模。该屏幕经过专门设计,可帮助您选择要使用的父表约束,并将子表列与作为约束一部分的父表中的列自动匹配。此处分别描述了开发外键的过程的不同方面,以进行说明,但是整个过程应该是平稳的过渡。
必须先满足许多条件,才能保存外键定义:
- 两个表都必须定义匹配的DBMS
- 父表必须至少具有一列
- 父表必须具有主键,定义的唯一约束或唯一索引
创建外键-使用数据库生成器
步 |
行动 |
也可以看看 |
---|---|---|
1个 |
在数据库构建器树中,右键单击子表名称,然后单击“在<表名称>上添加新外键”。 将显示一个对话框,列出所有可能的父表。 |
|
2 |
双击列表中所需的父表名称,或选择它,然后单击“确定”按钮。 显示“外键约束”屏幕。 |
创建外键-使用关系图
步 |
行动 |
也可以看看 |
---|---|---|
1个 |
在“数据建模”图中,找到所需的子(外键)表和父(主键)表。 |
|
2 |
在图工具箱的“数据建模”页面中选择关联连接器。 |
|
3 |
单击子表,然后将连接器绘制到父表。 |
|
4 |
如果将“外键约束”屏幕设置为在连接两个表时自动显示,则现在显示。否则,要么:
|
DDL名称模板 |
外键约束屏幕
作为示例,此图显示了外键约束屏幕,其中装有“ fk_customersaddresses_customers”的详细信息(如示例模型中所定义)。
选项 |
行动 |
也可以看看 |
---|---|---|
加入约束 |
该组合框列出了父表中所有可用作外键基础的已定义约束。 (这些约束可以是主键,唯一约束或唯一索引。) 默认情况下,列表中的第一个约束处于选中状态。如果这不是您想要的约束,请从组合框中选择正确的约束。 选择约束时,其列将自动列在“涉及的列”面板的“父项:<表名>”列下。 |
|
涉及列 |
此列表分为两部分:所选约束所涉及的列在左侧列出,而要与父列配对的子列在右侧列出。 当选择约束时(在“联接约束”字段中),刷新父侧以显示分配给所选约束的所有列。在子方面,系统将自动尝试将每个父列与子表中的相同名称之一进行匹配。如果子表没有相同名称的列,则该名称的新列将添加到列表中,并带有(*)标记,表示将在表中创建一个新列。 但是,如果要强制与现有子表列或具有不同名称的新列配对,请单击列名称字段,然后单击以下任一:
|
|
名称 |
该字段定义外键约束的名称,并且默认为由外键名称模板构造的名称。 要将名称更改为默认名称以外的其他内容,只需覆盖该值。 |
DDL名称模板 |
删除时 |
选择删除父表中的数据时应对子表中的数据执行的操作,以保持引用完整性。 |
|
更新时 |
选择在更新父表中的数据时应对子表中的数据执行的操作,以保持引用完整性。 |
|
父母 |
单击下拉箭头,然后在外键中选择父表的基数。 |
|
儿童 |
单击下拉箭头,然后在外键中选择子表的基数。 |
|
创造? |
如果要与外键同时创建外键索引,请将此属性设置为True。 外键索引的名称由外键索引模板控制,生成的名称显示在“创建?”下方的“名称”字段中。领域。 |
DDL名称模板 |
联接表后自动显示此屏幕 |
(对于图形建模)选中此复选框可在两个表之间创建关联时自动显示此屏幕。 |
|
删除 |
单击此按钮删除当前选择的现有(已保存)外键。 显示提示确认删除(如果存在则删除外键索引)-单击“是”按钮。 删除外键会将关联连接器保留在适当的位置,您可以对其进行编辑或删除(右键单击并选择“将关联:删除到<表名称>”)。 |
|
好 |
单击此按钮保存外键。 |
例子
此示例在图中显示了简单的外键:
相同的外键将在数据库构建器的树中显示为表“ customers.addresses”下的子节点。