add sql
This commit is contained in:
parent
f92ad68d32
commit
5c7640acdc
2
.gitignore
vendored
2
.gitignore
vendored
@ -4,3 +4,5 @@
|
|||||||
*.dtmp
|
*.dtmp
|
||||||
*.tmp
|
*.tmp
|
||||||
$*
|
$*
|
||||||
|
~$*
|
||||||
|
.$*
|
||||||
111
sql/db_create.sql
Normal file
111
sql/db_create.sql
Normal file
@ -0,0 +1,111 @@
|
|||||||
|
drop database if exists bigwork;
|
||||||
|
create database bigwork;
|
||||||
|
|
||||||
|
create table `admin`
|
||||||
|
(
|
||||||
|
passwd varchar(100) NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
insert into `admin` (`passwd`) values('');
|
||||||
|
|
||||||
|
create table user
|
||||||
|
(
|
||||||
|
user_id int PRIMARY KEY AUTO_INCREMENT,
|
||||||
|
user_name varchar(100) NOT NULL,
|
||||||
|
user_mail varchar(100) NOT NULL,
|
||||||
|
user_passwd varchar(100) NOT NULL,
|
||||||
|
user_limit int NOT NULL,
|
||||||
|
user_regtime datetime NOT NULL
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
|
||||||
|
|
||||||
|
create table book
|
||||||
|
(
|
||||||
|
book_id int PRIMARY KEY AUTO_INCREMENT,
|
||||||
|
book_name varchar(100) NOT NULL,
|
||||||
|
book_isbn varchar(100) DEFAULT NULL,
|
||||||
|
book_publisher varchar(100) DEFAULT NULL,
|
||||||
|
book_pubdate datetime DEFAULT NULL,
|
||||||
|
book_lang varchar(100) DEFAULT NULL,
|
||||||
|
user_id int NOT NULL,
|
||||||
|
CONSTRAINT `fk_book_user_id` FOREIGN KEY (`user_id`) REFERENCES user(`user_id`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
|
||||||
|
|
||||||
|
create table document
|
||||||
|
(
|
||||||
|
doc_id int PRIMARY KEY AUTO_INCREMENT,
|
||||||
|
doc_name varchar(100) NOT NULL,
|
||||||
|
doc_url varchar(100) NOT NULL,
|
||||||
|
doc_size int NOT NULL,
|
||||||
|
doc_date datetime NOT NULL,
|
||||||
|
doc_type varchar(100) NOT NULL,
|
||||||
|
book_id int NOT NULL,
|
||||||
|
user_id int NOT NULL,
|
||||||
|
CONSTRAINT `fk_document_user_id` FOREIGN KEY (`user_id`) REFERENCES user(`user_id`),
|
||||||
|
CONSTRAINT `fk_document_book_id` FOREIGN KEY (`book_id`) REFERENCES book(`book_id`),
|
||||||
|
INDEX (doc_name(10)),
|
||||||
|
INDEX (doc_date)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
|
||||||
|
|
||||||
|
create table note
|
||||||
|
(
|
||||||
|
note_id int PRIMARY KEY AUTO_INCREMENT,
|
||||||
|
note_name varchar(100) NOT NULL,
|
||||||
|
note_date datetime NOT NULL,
|
||||||
|
note_content mediumtext NOT NULL DEFAULT '',
|
||||||
|
book_id int NOT NULL,
|
||||||
|
user_id int NOT NULL,
|
||||||
|
CONSTRAINT `fk_note_user_id` FOREIGN KEY (`user_id`) REFERENCES user(`user_id`),
|
||||||
|
CONSTRAINT `fk_note_book_id` FOREIGN KEY (`book_id`) REFERENCES book(`book_id`),
|
||||||
|
INDEX (note_name(10))
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
|
||||||
|
|
||||||
|
create table record
|
||||||
|
(
|
||||||
|
record_time timestamp PRIMARY KEY,
|
||||||
|
record_type varchar(10) NOT NULL,
|
||||||
|
doc_URL varchar(100) NOT NULL,
|
||||||
|
user_id int NOT NULL,
|
||||||
|
INDEX (record_type)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
|
||||||
|
|
||||||
|
create table typetable
|
||||||
|
(
|
||||||
|
type_id int PRIMARY KEY AUTO_INCREMENT,
|
||||||
|
type_name varchar(20) NOT NULL,
|
||||||
|
UNIQUE (type_name)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
|
||||||
|
|
||||||
|
create table author
|
||||||
|
(
|
||||||
|
author_id int PRIMARY KEY AUTO_INCREMENT,
|
||||||
|
author_name varchar(50) NOT NULL,
|
||||||
|
INDEX (author_name(10))
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
|
||||||
|
|
||||||
|
create table book_author
|
||||||
|
(
|
||||||
|
author_id int NOT NULL,
|
||||||
|
book_id int NOT NULL,
|
||||||
|
PRIMARY KEY (`author_id`, `book_id`),
|
||||||
|
CONSTRAINT `fk_ba_user_id` FOREIGN KEY (`user_id`) REFERENCES user(`user_id`),
|
||||||
|
CONSTRAINT `fk_ba_author_id` FOREIGN KEY (`author_id`) REFERENCES author(`author_id`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
|
||||||
|
|
||||||
|
create table book_type
|
||||||
|
(
|
||||||
|
type_id int NOT NULL,
|
||||||
|
book_id int NOT NULL,
|
||||||
|
PRIMARY KEY (`type_id`, `book_id`),
|
||||||
|
CONSTRAINT `fk_bt_user_id` FOREIGN KEY (`user_id`) REFERENCES user(`user_id`),
|
||||||
|
CONSTRAINT `fk_bt_type_id` FOREIGN KEY (`type_id`) REFERENCES typetable(`type_id`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
|
||||||
|
|
||||||
|
create table book_type
|
||||||
|
(
|
||||||
|
user_id int PRIMARY KEY,
|
||||||
|
user_usedspace int NOT NULL DEFAULT 0,
|
||||||
|
user_bookcount int NOT NULL DEFAULT 0,
|
||||||
|
user_doccount int NOT NULL DEFAULT 0,
|
||||||
|
user_typecount int NOT NULL DEFAULT 0,
|
||||||
|
CONSTRAINT `fk_user_stat_user` FOREIGN KEY REFERENCES user(`user_id`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
|
||||||
55
sql/trigger.sql
Normal file
55
sql/trigger.sql
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
drop trigger if exists `trig_update_stat_book_ins`;
|
||||||
|
DELIMITER ##
|
||||||
|
create trigger `trig_update_stat_book_ins`
|
||||||
|
after insert on book
|
||||||
|
for each row begin
|
||||||
|
update user_stat set user_bookcount=user_bookcount+1 where user_stat.user_id=NEW.user_id;
|
||||||
|
end ##
|
||||||
|
DELIMITER ;
|
||||||
|
|
||||||
|
drop trigger if exists `trig_update_stat_book_del`;
|
||||||
|
DELIMITER ##
|
||||||
|
create trigger `trig_update_stat_book_del`
|
||||||
|
after delete on book
|
||||||
|
for each row begin
|
||||||
|
update user_stat set user_bookcount=user_bookcount-1 where user_stat.user_id=OLD.user_id;
|
||||||
|
end ##
|
||||||
|
DELIMITER ;
|
||||||
|
|
||||||
|
drop trigger if exists `trig_update_stat_doc_ins`;
|
||||||
|
DELIMITER ##
|
||||||
|
create trigger `trig_update_stat_doc_ins`
|
||||||
|
after insert on document
|
||||||
|
for each row begin
|
||||||
|
update user_stat set user_doccount=user_doccount+1 where user_stat.user_id=NEW.user_id;
|
||||||
|
update user_stat set user_usedspace=user_usedspace+NEW.doc_size where user_stat.user_id=NEW.user_id;
|
||||||
|
end ##
|
||||||
|
DELIMITER ;
|
||||||
|
|
||||||
|
drop trigger if exists `trig_update_stat_doc_del`;
|
||||||
|
DELIMITER ##
|
||||||
|
create trigger `trig_update_stat_doc_del`
|
||||||
|
after delete on document
|
||||||
|
for each row begin
|
||||||
|
update user_stat set user_doccount=user_doccount-1 where user_stat.user_id=OLD.user_id;
|
||||||
|
update user_stat set user_usedspace=user_usedspace-OLD.doc_size where user_stat.user_id=OLD.user_id;
|
||||||
|
end ##
|
||||||
|
DELIMITER ;
|
||||||
|
|
||||||
|
drop trigger if exists `trig_update_stat_type_ins`;
|
||||||
|
DELIMITER ##
|
||||||
|
create trigger `trig_update_stat_type_ins`
|
||||||
|
after insert on typetable
|
||||||
|
for each row begin
|
||||||
|
update user_stat set user_typecount=user_typecount+1 where user_stat.user_id=NEW.user_id;
|
||||||
|
end ##
|
||||||
|
DELIMITER ;
|
||||||
|
|
||||||
|
drop trigger if exists `trig_update_stat_type_del`;
|
||||||
|
DELIMITER ##
|
||||||
|
create trigger `trig_update_stat_type_del`
|
||||||
|
after delete on typetable
|
||||||
|
for each row begin
|
||||||
|
update user_stat set user_typecount=user_typecount-1 where user_stat.user_id=OLD.user_id;
|
||||||
|
end ##
|
||||||
|
DELIMITER ;
|
||||||
Loading…
Reference in New Issue
Block a user