模拟开发适合学校使用的小型图书管理系统,需要建立5个关系表,分别为图书明细表、图书种类表、读者明细表、借阅记录表、罚款记录表。
数据库BookManagement
图书种类表(Booktype)
       用途:记录所有的图书种类,如历史、政治,每条记录代表一种类型的图书。
  列名
说明 
类型 
非空 
主外键 
备注 
tno
  种类编号
 int
 
主 
自增长 
tname
种类名称 
 varchar(20)
是 
 
 
图书明细表(BookInfo)
       用途:记录所有的图书信息,每条记录代表一本图书,库存册数、借出数随借书、还书而改变。
  列名
说明 
类型 
非空 
主外键 
备注 
 bno
图书编号
 int
 
主 
自增长 
 tno
种类编号
Int
是 
外键
Booktype 表关联 
bname
图书名称
varchar(20)
 author
作者
varchar(20)
unitsInStock
库存量
int
lendcount
借出数
int
读者明细表(Readinfo)
       
用途:记录所有的读者信息,每条记录代表一个读者。
  列名
说明 
类型 
非空 
主外键 
备注 
rno
  读者编号
 int
 
主 
自增长 
rname
读者名称 
 varchar(10)
是 
 
 
datevalid
有效期
int
以月为单位,取值范围在1-3之间
   借阅记录表(borrowinfo)
用途:记录所有的借阅记录信息,每条记录代表一个读者借阅了一本书,借阅图书时如果这个读者借了同一本书而且还没归还,不允许再借这本书。
 
  列名
说明 
类型 
非空 
主外键 
备注 
rno
读者编号
Int
 bno
图书编号
Int
bdate
借入时间
Smalldatetime
rdate
归还时间
Smalldatetime
罚款记录表(Fineinfo)
用途:记录所有的罚款记录信息,每条记录代表一个读者借阅了一本书超出有效期后,将按照每天0.1元的金额进行罚款。
 
  列名
说明 
类型 
非空 
主外键 
备注 
rno
  读者编号
 int
 
fine
罚款金额
Float
是 
 
 
finedate
罚款日期
Smalldatetime
create database BookManagement
//
create table Booktype
(
tno int identity(1,1) primary key not null,
tname varchar(20) not null
)
//
create table BookInfo
(
    bno int identity(1,1) primary key not null,
    tno int not null,
    bname varchar(20) not null,
    author varchar(20) not null,
    unitsInStock int not null,
    lendcount int null
)
//
alter table BookInfo
add constraint BookInfo_tno foreign key(tno)
references Booktype(tno) on delete cascade    

//
create table Readinfo
(
    rno int identity(1,1) primary key not null,
    rname varchar(10) not null,
    datevalid int not null
)

//
alter table Readinfo
add constraint Readinfo_datevalid check(datevalid between 1 and 3)

//
create table borrowinfo
(
rno int not null,
bno int not null,
bdate smalldatetime not null,
rdate smalldatetime
)


create table Fineinfo
(
    rno int not null,
    fine float not null,
    finedate smalldatetime not null
)