--drop database LibraryManagement说明 IsOrPay=0未交罚款,另外往用户表中添加Email字段。BookDate smalldatetime,--订购日期另外添加了几个视图 dbo.VIEWBorrowBook dbo.viewBorrow
go
create database LibraryManagement
go
use LibraryManagement
go
create table ReaderInfo--读者信息
(
BarCodes varchar(20),--条形码
Number varchar(20) primary key,--编号
Uname varchar(10),--姓名
Sex varchar(4),--性别
UType varchar(20),--类型
Birthday smallDateTime,--出生日期
VaildDocument varchar(30),--有效证件
ContactMehtod varchar(200),--联系方式
RecodeDate smallDateTime,--登记日期
DeadLine smalldateTime,--有效期至
Operator varchar(10),--操作员
Remarks ntext,--备注
BookBorrowCount int,--图书借阅次数
MagazinebrrowCount int,--期刊借阅次数
IslostOrNot bit,--是否挂失
Email varchar(50) not null
)
go
create table BookInfo--图书信息
(
BarCodes varchar(20),--条形码
BookNumber varchar(20) primary key,--编号
BookName varchar(100),--图书名
BookType varchar(50),--类型
Author varchar(200),--作者
Translator varchar(100),--译者
IsBN varchar(20),--ISBN号
Publisher varchar(50),--出版社
Price money,--价钱
PageNumber int ,--页码
BookShelf varchar(100),--书架名称
StockOnHand int ,--现存量
SumStock int,--总库存量
InStockTime smalldatetime,--入库时间
Operator varchar(10),--操作员
Summary ntext,--简介
BorrowCount int,--借出次数
LogOut bit--是否注销
)
go
create table BookBorrow--图书借阅
(
BookNumber int identity(1,1) not null primary key,--借阅编号
BookID varchar(20) references BookInfo(BookNumber),--图书编号
ReaderID varchar(20),--读者编号
BorrowTime smalldatetime,--借阅时间
ShouldReturnTime smalldatetime,--应还时间
Renewal int ,--续借次数
operator varchar(10),--操作员
State varchar(10)--状态
)
go
create table ReturnBook--图书归还
(
ReturnID int identity(1,1) primary key,--归还编号
BookID varchar(20) references BookInfo(BookNumber),--图书编号
ReaderID varchar(20),--读者编号
ReturnDeposit money,--退还押金
ReturnTime smalldatetime,--归还时间
operator varchar(10),--操作员
ConfirmReturn bit--确认归还
)
go
create table BookBook--图书证定
(
BookID varchar(50) primary key,--征订编号
BookNumber varchar(50),--图书编号
Booker varchar(100),--订购者
BookerContactMethod varchar(400),--订购者联系方式
BookAmount int ,--订购数量
UnitPrice money,--订购单价
BookDate smalldatetime,--订购日期
Acceptance bit,--是否验收
AcceptanceTime smalldatetime,--验收日期
operator varchar(20) --操作员
)
go
create table Fine--图书罚款
(
FineID int identity(1,1) primary key,--罚款编号
BookID varchar(20) references BookInfo(BookNumber),--图书编号
ReaderID varchar(20) references ReaderInfo(Number),--读者编号
FineDate smalldatetime,--罚款日期
ShouldFine money,--应交罚款
factfine money,--实际罚款
IsOrPay bit,--是否交款
Remarks varchar(200)--备注
)
go
--以下为存储过程代码区
create proc proc_BookBook
as
begin tran
--验证入库,增加图书库存量
update BookInfo set SumStock=isnull(SumStock,0)+b.BookAmount,StockOnHand=isnull(StockOnHand,0)+b.BookAmount,InStockTime=b.AcceptanceTime
from BookInfo as a,BookBook as b
where a.BookNumber=b.BookNumber and b.Acceptance=0
update BookBook set AcceptanceTime=getDate(),Acceptance=1 where Acceptance=0
commit
go
create proc proc_Borrow
as
begin tran
update BookInfo set StockOnHand=isnull(StockOnhand,0)-1
from BookInfo as a,BookBorrow as b
where a.BookNumber=b.BookNumber and b.State='新借'
update BookBorrow set Renewal=0,State='未还'
where state='新借'
commit
go
create proc proc_ReturnBook
(@BookNumber int ,@Fine money)
as
begin tran
update BookInfo set StockOnhand=isnull(stockonhand,0)+1
from BookInfo as a,BookBorrow as b
where a.BookNumber=b.BookID and b.BookNumber=@BookNumber
if
@Fine<>0
insert into fine(BookID,ReaderID,FineDate,ShouldFine,IsOrPay)
select BookID,ReaderId,getdate(),@Fine,0
from BookBorrow where BookNumber=@BookNumber
insert into ReturnBook(BookID,ReaderId,ReturnTime)
select BookID,ReaderId,getdate()
from BookBorrow
where BookNumber=@BookNumber
update BookBorrow set State='已还' where BookNumber=@BookNumber
commit
go
CREATE VIEW dbo.Paymoney
AS
SELECT dbo.Fine.FineID, dbo.Fine.BookID, dbo.Fine.ReaderID, dbo.Fine.FineDate,
dbo.BookInfo.BookName, dbo.ReaderInfo.Uname, dbo.Fine.ShouldFine,
dbo.Fine.factfine, dbo.Fine.Remarks, dbo.Fine.IsOrPay
FROM dbo.BookInfo INNER JOIN
dbo.Fine ON dbo.BookInfo.BookNumber = dbo.Fine.BookID INNER JOIN
dbo.ReaderInfo ON dbo.Fine.ReaderID = dbo.ReaderInfo.Number
go
create table shelf--书架
(ShelfID varchar(50) primary key,--书架编号
ShelfName varchar(200)--书架名称
)
go
create table Publisher--供应商
(Code varchar(200)--供应商编号
)
go
create table Press--出版社
(
PressID int primary key identity(1,1),
ISBN varchar(40),
PressName varchar(200)--出版社名称
)
go
create table BookLost--图书丢失
(
LostID int identity(1,1) primary key,--丢失编号
BookID varchar(50),--图书编号
ReadID varchar(40),--读者编号
PayMoney money,--赔偿金额
OperateTime smalldatetime,--操作时间
Operator varchar(20),--操作员
ConfirmLost bit--确认丢失
)
go
create table LogOut--图书注销
(
LogOutID int identity(1,1) primary key,--注销编号
BookID varchar(50),--图书编号
LogOutAmount int,--注销数量
LogOutTime smalldatetime,--注销时间
Operator varchar(20),--操作员
ConfirmLogOut bit--确定注销
)
go
create table BookType--图书类型
(
TypeID varchar(50) primary key,--类型编号
TypeName varchar(100),--类型名称
availableDays int--可借天数
)
go
create table Library--图书馆
(
LibName varchar(200),--名称
Director char(10),--馆长
principal char(10),--负责人
Phone varchar(30),--电话
Address varchar(200),--地址
Statement varchar(200),--说明
Remarks varchar(200)--备注
)
go
create table FilePrint--文件印刷
(code varchar(40))
go
create table FileClass--文件等级
(code varchar(40))
go
create table FileLanguage--文件语系
(code varchar(40))
go
create table FileAttachment--文件附件
(code varchar(40))
go
create table MagazineLost--期刊丢失
(
LostID int identity(1,1) primary key,--丢失编号
MaazineID varchar(50),--期刊编号
ReadID varchar(50),--读者编号
PayMoney money,--赔偿金额
OperatorTime smalldatetime,--操作时间
Operator varchar(20)--操作员
)
go
create table MagaInfo--期刊信息
(
MagazineID varchar(50) primary key,--编号
BarCodes varchar(40),--条形码
Magazine varchar(200),--期刊名
Type varchar(100),--类型
uniteNO varchar(40),--统一编号
PostID varchar(40),--邮发代号
Edit varchar(200),--编辑部
Period varchar(40),--出版周期
Year varchar(8),--所属年度
Issue int ,--期号
SumIssue int,--总期号
Price money,--价钱
ShelfName varchar(200),--书架名
StockOnHand int,--现存量
SumStock int,--库存总量
InStock smalldatetime,--入库时间
Operator varchar(20),--操作员
Summary ntext,--简介
BorrowTimes int,--借出次数
IsORLogOut bit--是否注销
)
go
create table MagazineBorrow--期刊借阅
(
BorrowID int identity(1,1) primary key,--借阅编号
MagaZineID varchar(40),--期刊编号
ReadID varchar(40),--读者编号
deposit money,--‘押金
BorrowTime smalldatetime,--借阅时间
ShouldReturnTime smalldatetime,--应还时间
renewal int ,--续借次数
Operator varchar(20)--操作员
)
go
create table MagazineReturn--期刊归还
(
ReturnID int identity(1,1) primary key,--归还编号
ReaderID varchar(40),--读者编号
ReturnDeposit money,--退还押金
ReturnTime smalldatetime,--退还时间
Operator varchar(20)--操作员
)
go
create table BookMagazine--期刊订阅
(
BookID varchar(50) primary key,--征订编号
Magazinename varchar(200),--期刊号
Year varchar(8),--所属年度
MagazineNO int,--期号
Type varchar(100),--类型
Edit varchar(200),--编辑部
subscriber varchar(200),--订购者
SubScriContactMethod varchar(100),--订购者联系方式
OrderNumber int,--订购数量
OrderMoney money,--订购金额
OrderDate smalldatetime,--订购日期
IsOracceptance bit,--是否验收
FactMoney money,--实际金额
acceptancedate smalldatetime,--验收日期
Operator varchar(20)--操作员
)
go
create table MagazineLogOut-