关系
关系描述实体/表之间的数据关联,是模型中表达主外键引用与数据流向的连接方式。本页说明关系在模型中的作用与支持的关系类型;新建与编辑关系见关系操作,各类型的差异见关系类型。
关系在模型中的作用
| 作用 | 说明 |
|---|---|
| 表达关联 | 说明两个实体/表之间的引用方向与数量对应 |
| 生成物理约束 | 在物理模型中对应主键与外键,参与生成 DDL |
| 支撑分析 | 为影响分析与模型比较提供连接依据 |
| 组织 ER 图 | 关系线决定 ER 图中对象的连接与布局 |
| 承载业务规则 | 通过基数表达一对一、一对多、多对多等业务约束 |
在物理模型中使用标识关系或非标识关系时,系统会按父表主键自动在子表建立主键索引或外键索引,可在索引中查看和维护。
支持的关系类型
| 关系类型 | 主要用途 | 存在层级 |
|---|---|---|
| 标识关系 | 子表主键包含父表主键,子表的存在依赖父表 | 逻辑、物理 |
| 非标识关系 | 父子表存在相互独立,子表以外键引用父表 | 逻辑、物理 |
| 视图关系 | 表达视图由哪些基本表派生 | 物理 |
| 虚拟关系 | 表达不在数据库中实现的设计关联 | 逻辑、物理 |
| 多对多关系 | 表达多对多的业务关联 | 逻辑 |
| Subtype 关系 | 表达实体之间的特化与泛化 | 逻辑 |
各类型在创建时对子表字段的处理,以及逻辑模型转换为物理模型后的形态变化,见关系类型。
与其他对象的边界
- 关系连接的是实体/表或视图,不是字段层面的一对一映射;字段级的对应在关系属性的父子字段中设置。
- 仅做展示、不落入数据库的关联应使用虚拟关系,避免生成多余的物理约束。
- 从数据字典批量导入的连接默认生成虚拟关系,见简化导入关系。
关系的名称、基数、父子键与级联等属性的含义,统一在关系属性中说明。
