簡單的圖書館管理系統(tǒng)數(shù)據(jù)庫設(shè)計(jì)

表的設(shè)計(jì)及字段說明

lib_user
字段 數(shù)據(jù)類型 作用
userid varchar(50) 主鍵,學(xué)號,可用于登錄
userpassword varchar(50) 密碼
username varchar(50) 用戶姓名
userredp varchar(50) 院系

其他自己擴(kuò)展

lib_book

$E = mc^2$

字段 數(shù)據(jù)類型 作用
bookid int 自增主鍵
bookname varchar(50) xx
bookname varchar(50) xx
bookname varchar(50) xx
bookname varchar(50) xx
bookname varchar(50) xx

其他自己擴(kuò)展

lib_book_borrow
字段 數(shù)據(jù)類型 作用
borid int 自增主鍵
bookid int lib_book外鍵
userid varchar(50) lib_user外鍵
bordate date 借閱日期
retdate date 還書日期
borstate int 借閱狀態(tài)(正在借閱,已經(jīng)還書,續(xù)借,已經(jīng)過期)
bookbag
字段 數(shù)據(jù)類型 作用
bookid int lib_book外鍵
usreid varchar(50) lib_user外鍵

bookbag建表SQL語句

其他類似,暫列一個(gè)

CREATE TABLE lib_borinfo
(
userid varchar(50);
bookid int;
FOREIGN KEY (userid) REFERENCES lib_user(userid);
FOREIGN KEY (bookid) REFERENCES lib_book(bookid);
ADD CONSTRAINT unique_bor_book UNIQUE (userid,bookid);
)

用戶登錄驗(yàn)證SQL語句

select * from lib_user where(userid=@userid, userpassword=@password)

用戶密碼變更SQL語句

update lib_user set userpassword=@password

圖書檢索SQL語句

暫且列一個(gè)以圖書名搜索的,其他類似

select * from lib_user where(bookname=@bookname);

添加到書包SQL語句

use library;
insert into bookbag(userid, bookid) values (@userid, @bookid);

書包查詢SQL語句

use library;
select * from lib_book where
(bookid in (select bookid from bookbag where userid=@userid));

從書包刪除

use library;
delete from bookbag(userid, bookid) values (@userid, @bookid);

借閱圖書

因?yàn)闀赡苁且黄鸾?但是不一定同時(shí)還啊,所以必須一本書,對應(yīng)一個(gè)borid.

use library;
insert into lib_borrow(borid,bookid,userid,bordate,retdate,borstate) 
values (@borid, @bookid,@userid,@bordate,@retdate,@borstate);

每借閱一本圖書,lib_book里面數(shù)量減一的觸發(fā)器

create trigger BookDec1
on lib_borrow
after insert
as
update lib_book set bookres=bookres-1
from lib_book, inserted
where
lib_book.bookid=inserted.bookid;

每借閱一本圖書,相應(yīng)的從bookbag里面刪除的觸發(fā)器

create trigger BookbagDel
on lib_borrow
after insert 
as
delete bookbag
where bookid in (select bookid from inserted)
and userid in (select userid from inserted);

還書SQL語句

use library;
update lib_borrow set retdate=@date, borstate='1' where borid=@borid;

lib_book表加一的觸發(fā)器

create trigger BookbagDel
on lib_borrow
after update
as
update lib_book set bookres=bookres+1
from lib_book, inserted
where
lib_book.bookid=inserted.bookid;

當(dāng)前借閱信息查詢SQL語句

多表查詢

use library;
select * from lib_borrow 
left join lib_book on lib_book.bookid=lib_borrow.bookid
where lib_borrow.userid=@userid and lib_borrow.borstate=0;

歷史借閱信息查詢SQL語句

use library;
select * from lib_borrow 
left join lib_book on lib_book.bookid=lib_borrow.bookid
where lib_borrow.userid=@userid and lib_borrow.borstate=1;

圖書借閱排行榜

select * from
(select bookid, bor_sum=COUNT(lib_borrow.bookid) 
from lib_borrow group by lib_borrow.bookid) as A
left join (select * from lib_book) as B 
on A.bookid = B.bookid 
order by A.bor_sum desc

用戶圖書借閱排行榜

select * from(select userid, user_sum=COUNT(lib_borrow.userid)
from lib_borrow group by lib_borrow.userid) as A
left join (select userid1=userid,username,usersex,userredp from lib_user) as B 
on A.userid = B.userid1 order by A.user_sum desc ;
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容