书籍表与出版社表
一本书籍不能有多个出版社
一个出版社可以有多个书籍
一(出版社)对多(书籍)
create table book(
id int primary key auto_increment,
name char(16),
price int,
bp_id int,
foreign key(bp_id) references public(id)
on update cascade
on delete cascade
);
create table public(
id int primary key auto_increment,
pub_name char(16)
);
老师表与课程表
一个老师不可以有多门课
一门课不能有多个老师
一对一
create table teacher(
id int primary key auto_increment,
name varchar(16),
age int,
tc_id int unique,
foreign key(tc_id) references class(id)
on update cascade
on delete cascade
);
create table class(
id int primary key auto_increment,
class_name varchar(16)
);
学生表和班级表
一个学生不能有多个班级
一个班级可以有多个学生
一(班级)对多(学生)
create table student(
id int primary key auto_increment,
name char(16),
age int,
sc_id int,
foreign key(sc_id) references class(id)
on update cascade
on delete cascade
);
create table class(
id int primary key auto_increment,
class_name char(16)
);
书籍表与作者表
一本书可以有多个作者
一个作者可以有多本书
多对多
create table book(
id int primary key auto_increment,
name char(16),
price int
);
create table author(
id int primary key auto_increment,
name char(16),
age int
);
create table book2author(
id int primary key auto_increment,
author_id int,
book_id int,
foregin key(author_id) references author(id)
on update cascade
on delete cascade,
foreign key(book_id) references book(id)
on update cascade
on delete cascade
)
作者表与作者详情表
一个作者不能有多个作者详情
一个作者详情不能有多个作者
一对一
create table author(
id int primary key auto_increment,
name varchar(16),
detail_id int unique,
foreign key(detail_id) references author_detail(id)
on update cascade
on delete cascade
);
create table author_detail(
id int primary key auto_increment,
phone bigint,
addr varchar(16)
);