mysql 外键 foreign key 一对一 一对多 多对多 约束
-- 创建书名表 CREATE TABLE tb_books( id int primary key auto_increment, name varchar(24) not null comment 书籍名称, isbn varchar(15) not null comment 编号 ); -- 插入书名 INSERT INTO tb_books(name, isbn) values (梦里花落知多少, '9787102832855'), (盗墓笔记, '9787102885255'), (我不, '9787102859865'), (你猜, '9787102896745'); -- 创建作者表 CREATE TABLE tb_author( id int primary key auto_increment, name varchar(12) not null comment 作者 ); -- 插入作者 INSERT INTO tb_author(name) values (三毛), (南派三叔), (大冰); -- 创建关系表 CREATE TABLE tb_book_author( id int primary key auto_increment, book_id int, author_id int, foreign key(book_id) references tb_books(id) ON update cascade ON DELETE cascade, foreign key(author_id) references tb_author(id) ON DELETE cascade ON update cascade ); -- 插入关系 insert into tb_book_author(book_id, author_id) values(1, 1), (2, 2), (3, 3), (4, 3);
上面仅仅演示了 多对多的情况, 无非就是通过中间表来绑定双方的关系
一对一, 一对多, 只需要在使用率较高的一张表上 创建外键 并使用 unique 即可