关系属性
在关系编辑器中维护关系的各项属性,包括名称、基数、父子实体/表、父子键、级联与子字段。这些属性共同决定 ER 图中关系线的显示方式,以及生成 DDL 时的外键定义。
属性说明
| 属性 | 说明 | 是否影响物理实现 |
|---|---|---|
| 关系名称 | 关系的标识名称,用于在模型树与编辑器中定位该关系 | 否 |
| 关系基数 | 父子实体实例之间的数量对应关系 | 是 |
| 父实体/表 | 关系中的父实体或表 | 是 |
| 子实体/表 | 关系中的子实体或表 | 是 |
| 父键 | 父实体/表中与关系对应的索引 | 是 |
| 子键 | 子实体/表中与关系对应的索引 | 是 |
| 级联 | 子表外键字段与父表主键字段的级联删除和更新 | 是 |
| 子字段 | 子表中与父表索引成员字段相对应的字段 | 是 |
图示为关系编辑器:上方设置关系名称与基数,下方为父子字段对应列表,注意核对每一对父键字段与子字段的映射。
关系基数
关系基数描述一个父实体实例对应多少个子实体实例、一个子实体实例对应多少个父实体实例,在 ER 图中以 Crow's foot 规范显示:靠近实体一端的分叉形态表示该侧为“多”,竖线表示该侧为“一”。
| 基数 | 含义 | 典型场景 |
|---|---|---|
| 一对一 | 一侧实例最多对应另一侧的一个实例 | 人员与其唯一档案 |
| 一对多 | 一个父实例对应多个子实例,一个子实例只对应一个父实例 | 订单与订单明细 |
| 多对多 | 两侧实例可以互相多个对应 | 仅在逻辑模型中以多对多关系表达 |
父子键与子字段
- 父键是父表中与关系对应的索引,通常为父表主键。
- 子键是子表中新建或指定的索引,用于承载外键字段。
- 子字段把父表索引的每个成员字段映射到子表字段,父表主键为复合键时需要逐一指定。
在物理模型中创建标识关系或非标识关系时,系统会按父表主键自动建立主键索引或外键索引,可在索引中核对成员字段。
级联
级联控制子表外键字段随父表主键的删除与更新行为。开启后,父表记录被删除或主键被更新时,子表对应记录同步处理;关闭时由数据库按默认规则处理。是否开启应依据业务的数据保留要求决定。
注意事项
- 基数显示在 ER 图中用于阅读模型,外键的实际约束由父键、子键与子字段决定。
- 父表主键为复合键时,子字段需要逐项对应,遗漏会造成外键字段不完整。
- 级联删除影响数据安全,生成 DDL 或执行变更前应确认目标数据库的策略。

