SQL教学思路《图书管理系统》习题一:建库、建表

 模拟开发适合学校使用的小型图书管理系统,需要建立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 
)
本文转自叶子文文博客51CTO博客,原文链接http://blog.51cto.com/leafwf/206980如需转载请自行联系原作者

叶子文文
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值