邻接学科概念 / Junction Tables

多对多关系如何拆成中间表

中间表是把多对多关系拆成两条一对多关系的表,每一行表示一对实体之间的一次关联。

关键字段

Identity · 身份

子类型
方法
父级类目
数据库设计

What · 是什么

定义
中间表是把多对多关系拆成两条一对多关系的表,每一行表示一对实体之间的一次关联。
前置知识
一对一、一对多与多对多、ER 图

Why · 为什么

核心问题
如何保存“一个作者写多本书、一本书有多位作者”而不制造重复列?
作用机制
中间表至少包含两侧实体的外键,通常用两列组合成主键或唯一约束。

Where · 在哪里

表现形式
book_authors 可以保存 book_id、author_id 和 author_order;每行代表一位作者与一本书的一次关联。

How · 怎么做

主要用途
稳定表达多对多关系,并为关系本身增加角色、顺序和时间等属性。

Evidence · 证据

局限与边界
中间表不是万能的“关系垃圾桶”;它仍需要清楚粒度、主键、外键和额外属性。

Lifecycle · 生命周期

状态
草稿

Content · 补充内容

兼容标签
关系型数据库 · 键 · ER 图

Relation · 关联

相关内容
图书馆数据库设计案例