一对多关系、多对一关系和一对一关系
- 至少都有一侧是单个实体,所以记录之间的联系通过外键实现,让外键指向这个实体。
- 实现这种关系时,要在“多”这一侧加入一个外键,指向“一”这一侧联接的记录。
多对多关系
- 解决方法是添加第三个表,这个表称为关联表。
- 多对多关系可以分解成原表和关联表之间的两个一对多关系
多对多关系例子
查询多对多关系要分成两步。
- 若想知道某位学生选择了哪些课程,要先从学生和注册之间的一对多关系开始, 获取这位学生在 registrations 表中的所有记录。
- 然后再按照多到一的方向遍历课程和注册之间的一对多关系, 找到这位学生在 registrations 表中各记录所对应的课程。
- 同样,若想找到选择了某门课程的所有学生,你要先从课程表中开始,获取其在 registrations 表中的记录,再获取这些记录联接的学生。
自引用关系也是多对多的一种特殊情况
如果关系中的两侧都在同一个表中, 这种关系称为自引用关系。在关注中, 关系的左侧是用户实体,可以称为“关注者”;关系的右侧也是用户实体,但这些是“被关注者”。