外键配置与 ER 图
使用对象
适合需要定义表间关联关系、并希望通过可视化方式查看整体数据结构的使用者。
解决问题
你可以在表设计阶段就明确外键约束与级联规则,避免上线后因遗漏外键导致的数据完整性问题;ER 图则帮助团队快速理解表间关系。
前置条件
- 当前表至少有一个字段。
- 已明确需要关联的目标表与字段。
- 使用 ER 图创建关系时,源表和目标表都需要先保存到当前工作区。
- ER 图关系向导只允许引用目标表的单字段主键或唯一键。
通过 ER 图创建关系
- 点击表配置区顶部的
ER 关系图。结果:系统展示当前工作区中已保存的表和已有关系。 - 从源表字段左侧的连接点拖到目标表字段右侧的连接点。结果:系统打开关系创建向导,并带入源字段和目标字段。
- 确认源字段与目标字段。结果:目标字段列表只允许选择单字段主键或唯一键;类型不一致时会显示风险提示。
- 选择
多对一或一对一。结果:一对一关系会确保源字段存在唯一约束;多对一关系可按需为源字段创建普通索引。 - 选择
必选或可选。结果:系统把源字段分别调整为NOT NULL或NULL;必选关系不能使用SET NULL。 - 检查关系名、更新规则、删除规则和索引选项。默认规则为
NO ACTION,只有业务语义明确时再改为CASCADE、SET NULL等行为。 - 检查向导底部的变更预览并点击
创建关系。结果:外键、字段可空性和必要索引一次写入源表,ER 图刷新后显示关系线。
通过外键面板创建关系
- 在表配置区域切换到
外键配置标签。结果:进入外键管理面板。 - 点击
新增外键。结果:展开外键编辑行。 - 填写
外键名、选择当前表字段、关联表与关联字段。结果:外键关系已建立。 - 按需设置
更新规则与删除规则。结果:级联行为已定义,右侧 DDL 同步更新。 - 重复上述步骤添加更多外键。结果:当前表可关联多张表。
查看和整理 ER 图
- 在 ER 图中拖拽表节点调整布局。结果:表的位置发生变化,但不会修改表结构。
- 使用滚轮缩放画布,或使用工具栏自动布局。结果:可以在大工作区中快速定位表和关系。
- 通过关系线标签查看删除和更新规则;需要删除时使用关系线旁的删除操作。结果:源表中的对应外键同步移除。
完成标志
- 外键配置面板中列出了所有目标外键,且字段、关联表、关联字段均正确。
- 右侧 DDL 中已出现
FOREIGN KEY语句。 - ER 图中能正确展示当前表与关联表的关系线。
- 一对一关系的源字段具有主键或唯一索引;需要查询加速的多对一关系具有合适索引。
- 更新/删除规则符合业务预期。
易错点
- 外键字段与关联字段类型不兼容时,生成的 DDL 在目标库可能执行失败,建议提前确认类型匹配。
- 目标字段不是单字段主键或唯一键时,关系向导不会允许创建;先为目标字段增加主键或唯一索引。
- 同名表可能对应不同的已保存记录。ER 图按保存记录区分节点,不会猜测应连接到哪一张同名目标表。
- 外键名重复或相同字段间已存在关系时,向导会阻止重复创建。
- 并非所有数据库都支持所有级联规则(如 SET NULL 要求字段可为空),选择前请确认目标数据库支持度。