如何用ER图展示Join生成的关联表?Inner Join场景示例
关于ER图展示内连接生成表的问题解答
ER图是否适用于此类场景?
ER图的核心作用是呈现数据库的静态实体结构、属性及实体间的固有关联,它针对的是持久化存储的表/实体,而非通过SQL查询动态生成的虚拟结果集(也就是你说的表3)。所以严格来说,ER图并不是为展示这类临时查询产出的表设计的,它更偏向数据库的设计阶段,而非查询结果的可视化。
如何在ER图中体现这个关联逻辑及表3?
如果一定要用ER图来表达这个场景,可以做如下扩展展示:
- 保留原始实体:分别画出表1(可命名为
Person,属性包含name、date of birth、zip code、random_stuff)和表2(可命名为IncomeDetail,属性包含Income、random_stuff、education)的实体框。 - 标注关联关系:用连线连接两个实体,在连线上注明关联条件为
ON table1.random_stuff = table2.random_stuff,同时标注这是多对多关联(因为两边的random_stuff都非主键且存在多值,一个表1的记录可能对应多个表2记录,反之亦然)。 - 表示虚拟表3:用虚线框画出表3的实体,标注为「表3(内连接结果)」,并通过虚线分别连接到表1和表2,说明它是两表基于
random_stuff做内连接后得到的虚拟结果,属性为表1和表2的所有属性集合。
需要注意的是,这种方式属于ER图的非标准扩展用法,并非ER图的常规用途。
内容的提问来源于stack exchange,提问作者learner
相关产品推荐
相关产品推荐

