> 文档中心 > 外键必须是另一个表的主键吗 ?

外键必须是另一个表的主键吗 ?

不一定是主键,但必须是唯一性索引。
主键约束和唯一性约束都是唯一性索引。
外键是表间关系的参照,可以不是主键。只是表明两个表之间的关系是通过那个属性连接起来的。

比如学生表在设计的时候一般可以用学号作为主键,也可设计一个ID字段,字段由数据库自动生成且唯一。那么对于班级,一个班级对应多个学生,这个时候对于班级表和学生表之间的关系,班级表的外键学生ID对应于学生表的学生ID
如下所示:
学生(学号,学生ID, 姓名,班级号,成绩)
班级(班级号,班级名,学生ID) 

开发者涨薪指南 外键必须是另一个表的主键吗 ? 48位大咖的思考法则、工作方式、逻辑体系