前页 | 后页 |
外键
外键定义了A列(或列的集合),它强制两个表之间的关系。执行此关系以确保数据完整性是数据库服务器的责任。外键的模型定义由包含一组唯一数据的父(主)库表组成,然后在子(外)库表中引用该数据集。
在Enterprise Architect中,外键使用两个不同(但相关)的UML组件建模:
- 存储在子库表中A外键约束(具有 <<FK>> 原型的UML操作)
- 定义两者之间关系的关联连接器(<<FK>> 的刻板印象)表
创建外键
虽然外键的定义可能很复杂,但外键约束屏幕简化了外键的建模。此屏幕旨在帮助您选择要使用父库表中的哪个约束,并且会自动将子库表列与父库表中属于约束的列进行匹配。为了说明,这里分别描述了开发外键过程的不同方面,但整个过程应该是一个平稳的过渡。
A保存外键定义之前,必须满足许多条件:
- 两个表都必须定义匹配的 DBMS
- 父库表必须至少有一栏
- 父库表必须定义一个主键、唯一约束或唯一索引
创建外键 - 使用数据库
节 |
行动 |
也见 |
---|---|---|
1 |
在数据库构建器树中,右键单击子库表名称并单击“在 <表名称> 上添加新外键”。 显示A对话框,列出所有可能的父表。 |
|
2 |
双击列表中所需的父库表名称或选择它并单击确定按钮。 显示“外键约束”屏幕。 |
创建外键 - 在图表上使用关系
节 |
行动 |
也见 |
---|---|---|
1 |
在数据建模图中,找到需要的child(Foreign Key)库表和parent(Primary Key)库表。 |
|
2 |
在图表工具的“数据建模工具箱”页面中图表一个关联连接器。 |
|
3 |
单击子库表并将连接器绘制到父库表。 |
|
4 |
如果外键约束屏幕已设置为两个表连接时自动显示,则显示现在。否则,要么:
|
DDL名称模板 |
外键约束屏幕
作为示例,此图像显示加载了“示例”详细信息的外键约束屏幕(如示例模型中所定义)。
选项 |
行动 |
也见 |
---|---|---|
汇合关于约束 |
这个组合框列出了父库表中所有定义的约束,这些约束可以用作外键的基础。 (这些约束可以是主键、唯一约束或唯一索引。) 默认选择列表中的第一个约束;如果这不是您想要的约束,请从组合框中选择正确的约束。 当您选择约束时,它的列会自动列在“涉及的列”面板中的“父级:<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提示以确认删除(以及外键索引的删除,如果存在) - 单击是按钮。 删除外键会留下一个关联连接器,您可以对其进行编辑或删除(右键单击并选择“删除关联:到 <库表名称>”)。 |
|
确定 |
单击此按钮以保存外键。 |
例子
此示例在图表中显示了简单的外键:
相同的外键将作为库表“customers.addresses”下的子节点显示在数据库构建器的树中。