模拟开发适合学校使用的小型图书管理系统,需要建立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
)
//
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
)
转载于:https://blog.51cto.com/leafwf/206980