«

mysql的索引与外键

benojan • 2022-11-02 23:09 • 253 次点击 • mysql


主键索引

约束:不能重复且不能为空;
加速查找

id int unsigned auto_increment primary key,
primary key (id,name), # 多列主键

唯一索引

约束:不能重复,可以为空;
加速查找

unique 约束名 (id, name),

外键

约束:值必须是另一张表的主键

constraint fk_user_depar foreign key(department_id) references department(id),

外键的变种:

  1. 一对一

    blog表中,fk(user_id) + unique(user_id)

    如:一个博客属于一个用户,一个用户只能有一个博客

  2. 一对多

    student表中,fk(class_id)

    如:一个学生属于一个班级,一个班级可以有多个学生

  3. 多对多

    fk(aid) + fk(bid) + unique(aid,bid)

    如:关系表、组合配对

mysql