ACCP7.0S2优化myschool数据库设计第二章课后简答

本文档详细展示了如何创建和优化名为labrary的数据库,包括book、reader、borrow和penalty四张表的设计,设置了主键、外键、检查约束和默认值,确保数据完整性和业务规则的遵循。
摘要由CSDN通过智能技术生成
use master 
go
if exists(select * from sysdatabases where name='labrary')
drop database labrary
create database labrary
on primary
(name='labrary_data',filename='d:\labrary.mdf',size=5,filegrowth=15%)
log on(name='labrary_log',filename='d:\labrary.ldf',size=1,filegrowth=15%)
use labrary
go
create table book(
bid varchar(20) not null,
bname varchar(50) not null,
author varchar(20),
pubcomp varchar(50),
pubdate datetime,
bcount int,
price money
)
create table reader(
rid varchar(20) not null,
rname varchar(50) not null,
lendnum int,
raddress varchar(255)
)
create table borrow(
rid varchar(20) not null,
bid varchar(20) not null,
lenddate datetime not null,
willdate datetime,
returndate datetime
)
create table penalty(
rid varchar(20) not null,
bid varchar(20) not null,
pdate datetime not null,
ptype int,
amount money
)
alter table book
add constraint pk_bid1 primary key(bid)
alter table book
add constraint ck_bid check(bid like 'isbn%')
alter table book
add constraint ck_pubdate check(pubdate<=getdate())
alter table book
add constraint ck_bcount check(bcount>=1)
alter table book
add constraint ck_price check(price>0)
alter table reader
add constraint pk_rid1 primary key(rid)
alter table reader
add constraint ck_lendnum check(lendnum>=0)
alter table borrow
add constraint pk_rid2 primary key(rid,bid,lenddate)
alter table borrow
add constraint fk_rid1 foreign key(rid) references reader(rid)
alter table borrow
add constraint fk_bid1 foreign key(bid) references book(bid)
alter table borrow
add constraint df_lenddate default(getdate()) for lenddate
alter table borrow
add constraint ck_willdate check(willdate>=getdate())
alter table borrow
add constraint df_willdate default(dateadd(month,1,getdate())) for willdate
alter table borrow
add constraint df_returndate default(null) for returndate
alter table penalty
add constraint pk_rid3 primary key(rid,bid,pdate)
alter table penalty
add constraint fk_rid2 foreign key(rid) references reader(rid)
alter table penalty
add constraint fk_bid2 foreign key(bid) references book(bid)
alter table penalty
add constraint df_pdate default(getdate()) for pdate
alter table penalty
add constraint ck_ptype check(ptype=1 or ptype=2 or ptype=3)
alter table penalty
add constraint ck_amount check(amount>0)
alter table book add btotal int

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值