0906作业

书籍表与出版社表

一本书籍不能有多个出版社
一个出版社可以有多个书籍
一(出版社)对多(书籍)

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)
);

posted @ 2021-09-06 21:49  wddwyw  阅读(23)  评论(0编辑  收藏  举报