【正文】
版日期,頁(yè)數(shù),關(guān)鍵字,入庫(kù)時(shí)間,是否允許外接,是否注銷,是否借出,借閱次數(shù),備注)(2)人員信息表(人員編號(hào),證件有效日期,證件截止日期,是否掛失,姓名,性別,類別,所屬部門(mén),地址,電話,電子郵件地址,備注)(3)借閱信息表(讀者ID,書(shū)編號(hào),借閱日期,是否經(jīng)過(guò)假期標(biāo)志,續(xù)借次數(shù),最后還書(shū)截止日期,操作員編號(hào),備注)(4)圖書(shū)分類信息表(圖書(shū)分類號(hào),類別名稱,關(guān)鍵字,允許借的最大數(shù)目,備注)(5)人員分類信息表(人員分類號(hào),類別名稱,允許借書(shū)數(shù)量,允許借閱天數(shù),允許續(xù)借次數(shù),備注)(6)用戶信息表(人員ID,人員密碼,人員類型(權(quán)限))(7)借閱歷史記錄表(書(shū)號(hào),讀者ID,借閱日期,還書(shū)日期,罰款金額,是否繳納罰款,操作員編號(hào),備注(罰款原因))(8)采購(gòu)表(采購(gòu)書(shū)的種類,采購(gòu)人員ID,采購(gòu)日期,采購(gòu)本書(shū),采購(gòu)金額,備注)(9)書(shū)架分布表(書(shū)架編號(hào),書(shū)架位置,書(shū)架容量,書(shū)架類別)(10)書(shū)籍索引表(索引編號(hào),該種書(shū)的現(xiàn)有本書(shū),該種書(shū)的關(guān)鍵字,該種書(shū)的類別)(11)專業(yè)表(專業(yè)編號(hào),專業(yè)名稱,專業(yè)負(fù)責(zé)人)(12)班級(jí)表(班級(jí)編號(hào),班級(jí)名稱,班級(jí)負(fù)責(zé)人)167。各個(gè)表之間的關(guān)系為:圖41 說(shuō)明:各個(gè)表中的主鍵除了作為外鍵參照其他表中主鍵之外,均設(shè)為int,且作為標(biāo)識(shí)和索引,日期均為datetime 類型,金額及價(jià)格均為money類型,其他均為字符串型,大小根據(jù)實(shí)際設(shè)定,有些屬性具有默認(rèn)值。第5章 詳細(xì)設(shè)計(jì)輸入讀者編號(hào)輸入書(shū)籍編號(hào)不存在、注銷、掛失不在庫(kù)、注銷、不外借是超過(guò)總借書(shū)上限是否超過(guò)每類書(shū)借書(shū)上限是借過(guò)同一本書(shū)否是是否當(dāng)天已借過(guò)否否借書(shū)失敗第6章 編碼借書(shū)成功 8圖61 借書(shū)存儲(chǔ)過(guò)程實(shí)現(xiàn):CREATE PROCEDURE @bookID int , @readerID int , @duringHoliday char(4), @continueborrow int , @operatorID int , @memo char(50), @result char(80)OUTPUT AS declare @number int declare @current_borrow_num int declare @current_bookTyoe_borrow_num int declare @MAXNUM int declare @BookTypeMAXNUM int declare @readerType int declare @readerMAXDays int declare @bookType int declare @bookIndex int SET @number=(SELECT COUNT(*)FROM PersonWHERE =@readerID AND =39。否39。 AND =39。否39。)if(@number!=1)begin SET @result=39。讀者編號(hào)不存在或者已注銷和掛失!39。return。end SET @number=(SELECT COUNT(*)FROM Book WHERE =@bookID AND =39。否39。 AND =39。否39。 AND =39。是39。)if(@number!=1)begin SET @result= 39。該書(shū)不存在或已注銷或不對(duì)外借或已借出!39。return。end SET @current_borrow_num=(SELECT COUNT(*)FROM BorrowInfo WHERE =@readerID)SET @readerType=(SELECT Persontype FROM Person WHERE =@readerID)SET @MAXNUM=(SELECT BookNumber FROM PersonType WHERE =@readerType)SET @readerMAXDays=獲取應(yīng)歸還的天數(shù)(SELECT BookDays FROM PersonType WHERE =@readerType)IF(@duringHoliday=39。是39。)SET @readerMAXDays=@readerMAXDays+60。經(jīng)過(guò)一個(gè)假期,天數(shù)應(yīng)加60 if(@current_borrow_num=@MAXNUM)借書(shū)已達(dá)最大值 begin SET @result= 39。借書(shū)已達(dá)最大值,不能再借!39。return。end SET @bookType =(SELECT BookType FROM Book WHERE =@bookID)SET @BookTypeMAXNUM=(SELECT BorrowNumber FROM BookType WHERE =@bookType)SET @current_bookTyoe_borrow_num=(SELECT COUNT(*)FROM BorrowInfo ,Book WHERE = AND =@bookType)IF(@current_bookTyoe_borrow_num=@BookTypeMAXNUM)本類數(shù)已超借閱本數(shù)限制 begin SET @result= 39。 本類數(shù)已超借閱本數(shù)限制!39。return。end SET @bookIndex=(SELECT BookIndex FROM Book WHERE =@bookID)SET @number=(SELECT COUNT(*)FROM BorrowInfo,Book WHERE = AND =@bookIndex)IF(@number=1)已經(jīng)借過(guò)同一本書(shū)!begin SET @result= 39。已經(jīng)借過(guò)同一本書(shū)!39。return。end BEGIN TRAN INSERT INTO BorrowInfo VALUES(@readerID,@bookID,GETDATE(), @duringHoliday,@continueborrow ,DATEADD(day,@readerMAXDays,GETDATE()), @operatorID,@memo)。UPDATE Book SET IsBorrowed=39。是39。 , BookBorrowTimes=BookBorrowTimes+1 WHERE BookID=@bookID。COMMIT TRA