认证主体:曹**(实名认证)
IP属地:上海
下载本文档
2、的属性、对象和其他对象直接的关系)。本文档中包含对以下数据库内容的描述:l 数据表l 视图l 存储过程l 触发器l 约束在数据库主要对象之外,本文还将描述数据库安全性设置、数据库属性设置和数据库备份策略,为数据库管理员维护数据库安全稳定地运行提供参考。1.3 与其他项目的关联本项目的数据库设计与本项目(Web部分和Windows部分)功能密切相关。本案例项目的数据库将按照项目程序部分的功能需求而设计,数据库设计将配合设计案例的程序部分,以实现一个功能完备的真实环境内的应用。表1.4 表设计概述根据设计的系统功能,数据库将以图书信息为中心存储相关数据,配合 SQL Server 数据库系统中提供
3、的数据管理,实现图书的借阅、归还、续借及系统设置等业务功能。数据库设计将以存储读者信息的读者表为基础,连接多张相关表以实现对以下关系的支持:l 读者借书记录l 读者还书记录l 读者续借记录l 读者罚款记录l 读者对图书的评价l 读者对图书和图书馆的建议及留言数据库系统主要的实体关系如图 01所示。图 011.5 读者用户信息表(ReaderInfo)概述读者用户信息表用于记录读者基本信息,并作为基础表与其他表连接。表定义读者用户信息表定义如表 01所示。表 01字段类型可否为空备注Usernamenvarchar(10)否IDint否Passwdchar(8)否Namenvarchar(10)
4、可Sexchar(2)否Ageint可StuNumNumeric可PlaceStrandnvarchar(50)可PlaceClassnvarchar可ValidCardnvarchar(50)否BookCardnvarchar(10)可CreateTimedatetime可ExpiredTimedatetime可主键读者用户信息表的主键是读者用户信息表编号字段,类型为整型,设置自动增量。约束无索引主键用户信息ID具有自动创建的聚集索引。1.6 管理员用户信息表(UserInfo)概述管理员用户信息表用于记录系统管理员的各项资料。表中都记录了管理员的账号和密码,是各用户的详细记录。表定义管理员
5、用户信息表定义如表 02所示。表 02字段类型可否为空备注IDNumeric不否Usernamenvarchar(10)不否Passwdchar(8)不否Typenvarchar(14)不否主键管理员用户信息表的主键是管理员用户ID号,类型为整型,设置自动增量。约束无其他约束。索引主键字段管理员编号具有自动创建的聚集索引。读者类别表(ReaderType)读者类别表用于记录读者信息,包括读者ID、名字等。读者类别表通过读者编号与借书表关联。表定义读者类别表定义如表 03所示。表 03字段类型可否为空备注IDint否Namenvarchar(10)否ReaderIDint 否Canborrowi
6、nt 可缺勤扣除整型 可其他薪资整型 可主键读者类别表的主键是读者表ID字段,类型为整型,设置自动增量。约束无其他约束。索引主键字段薪资编号具有自动创建的聚集索引。图书信息表(BookInfo)图书信息表用于记录图书信息(图书名称、图书状态等),通过字段图书类别号与图书类别表关联。表定义图书信息表定义如表 04所示。表 04名称类型可否为空备注IDnvarchar(20) 否Namenvarchar(50)否Typeidint 可Statebinary 可Creattimedatetime否Pricemoney可Pressnvarchar(50) 否IsCancellationbinary可I
7、DCancellationint可Notenvarchar(50)可Authornvarchar(10)可Pageint可主键图书信息表的主键是图书编号字段,类型为整型。约束图书信息表中的图书编号不可相同;图书信息表中的状态类型字段只能取“被借”、“续借”、“以还”。索引主键字段考勤编号具有自动创建的聚集索引。图书类别表(BookType) 图书类别表用于记录图书的类别。图书类别表中的基本信息包括:图书的类别、申请状态、借书开始的时间和借书归还的时间等。通过类别ID字段与员工表关联。表定义图书类别表定义如表 05所示。表 05字段类型可否为空备注Typeidint否Typenamenvarch
8、ar(50)否主键图书类别表的主键是Typeid字段,类型为整型,设置自动增量。约束请假开始时间应小于请假结束时间;申请状态字段的取值可以是:“已提交”、“已取消”、“已批准”、“已否决”。索引主键字段请假申请编号具有自动创建的聚集索引。1.7 图书库存表(BookStock)概述图书库存表用于图书总库存的记录。库存表中的基本信息包括:库存ID,图书ID。通过字段,图书ID与图书信息表关联。表定义图书库存表定义如表 06所示。表 06字段类型可否为空备注IDint否BookIDnvarchar(20)否主键图书库存表的主键是图书库存ID字段,类型为整型,不设置自动增量。索引主键字段加班申请编号
9、具有自动创建的聚集索引。1.8 借书表(BookBorrowReturn)借书表用于保存借书状态信息。借书表中的基本信息包括:借书表ID标识号、图书编号、证件号、借书时间、还书时间等。通过图书ID编号与图书信息表关联。表定义借书表定义如表 07所示。表 07字段类型可否为空备注IDNumeric 否BookIDnvarchar(20)否CardIDNumeric 可BorrowTimedatetime 否ReturnTimedatetime 否IsReturnnvarchar(10)否主键借书表的主键是图书借书表ID字段,类型为整型,不设置自动增量。约束 还书时间要大于借书时间索引主键字段业绩
10、评定编号具有自动创建的聚集索引。1.9 罚款表(BookFines)概述罚款表对超期或者丢失的书籍进行评定罚款以及记录。表BookFines中的基本信息包括:书籍ID、读者ID、罚款ID等。通过对书籍罚款的记录以及分类,可以清晰的看出书籍的情况。表定义罚款表定义如表 08所示。表 08字段类型可否为空备注IDNumeric 否ReaderIDint可BookIDnvarchar(20)否FinesTimedatetime可FinesAmountmoneyFinesTypenVarchar(10)FinesReasonnVarchar主键系统配置表的主键是罚款ID字段,类型为整型,设置自动增量。
11、约束罚款类别只有三类,0,1,2各为丢失、超期、挂失索引主键字段具有自动创建的聚集索引。1.10 评价表(Evaluate)概述评价表用于保存读者对书籍看法的记录。评价表中的基本信息包括:评价ID、图书ID、书籍ID、评价等。表定义评价表定义如表 09所示。表 09字段类型可否为空备注IDint否BookIDint否ReaderIDnvarchar(20)否Evaluatenvarchar(50)主键评价表的主键是评价编号字段,类型为整型,设置自动增量。约束无其他约束。索引主键字段评价编号具有自动创建的聚集索引。1.11 借阅室表(LendRoom) 概述借阅室表用于将库存书籍分类出若干借阅室
12、的记录。借阅室表的基本信息包括:借阅室编号,借阅室名称、和借阅书架的编号。表定义借阅室表定义如表 010所示。表 010字段类型可否为空备注IDint否Namenvarchar(10)否LendRoomBookIDnvarchar(20)主键借阅室表的主键是借阅室编号字段,类型为整型,设置自动增量。约束无其他约束。索引主键字段借阅室表编号具有自动创建的聚集索引。1.12 借阅室书籍表(LendRoomBook)概述借阅室书籍表用于记录借阅室书籍表类型。借阅室书籍表的基本信息包括:借阅室书籍ID和书籍ID、书籍状态、书籍总和。表定义借阅室书籍表定义如表 011所示。表 011字段类型可否为空备注
13、IDnvarchar(20)否BookIDint否BookCountintBookStatebinary主键借阅室表的主键是借阅室书籍表编号字段,类型为整型,设置自动增量。约束无索引主键字段借阅室书籍表编号具有自动创建的聚集索引。1.13 图书证表(BookCard)概述图书证表用于记录图书证ID信息。图书证表的基本信息包括:图书证表编号、读者编号等。表定义图书证表定义如表 012所示。表 012字段类型可否为空备注IDNumeric 否ReaderIDint 否Borrowedint否主键图书证表的主键是图书证ID编号字段,类型是整型,设置自动增量。约束无。索引主键字段图书证表编号具有自动创
14、建的聚集索引。1.14 留言表(Message)概述留言表用于记录读者对图书和图书馆相关的留言。留言表包含的主要内容有:留言表编号、读者编号。表定义留言表定义如表 013所示。表 013名称类型可否为空说明备注IDint 否业绩评定子项目编号ReaderIDnvarchar(20) 否业绩评定编号detailsnvarchar否项目内容主键留言表编号。约束无其他约束。索引主键字段留言表编号具有自动创建的聚集索引。1.15 系统设置表(SystemSet) 概述系统设置表用于系统各详细设置信息。系统设置表包含的主要内容有:用户权限设置、赔偿价格参照、公告、证件相关各信息和备份恢复等。表定义系统设
15、置表定义如表 013所示。表 014名称类型可否为空说明备注IDint 否UserPermissionSetnvarchar(10) 否Overdatepointmoney否lostPricemoney可RenewTimedatetime可BackupSetdatetimeAnnouncenvarchar(50)CardReCostmoneyCardfillpricemoneyCardReTimedatetimeModifyPersonnvarchar(10)Modifytimedatetime主键系统设置表编号。约束无其他约束。索引主键字段系统设置表编号具有自动创建的聚集索引。1.16 各表
16、SQL代码示例管理员用户信息表(UserInfo)create table UserInfo( ID Numeric identity(1001,1) not null, Username nvarchar(10) not null, Passwd char(8) not null, Type nvarchar(14) check(Type ='图书管理员' or Type ='系统管理员') not null, constraint pk_UserInfo_id primary key(ID) 读者用户信息表(ReaderInfo)(普通用户)create t
17、able ReaderInfo( Username nvarchar(10) not null, ID int not null, Passwd char(8) not null, Name nvarchar(10) not null, Sex char(2) check(Sex ='男' or Sex ='女')not null, Age int , StuNum Numeric , PlaceStrand nvarchar(50), PlaceClass nvarchar(50), ValidCard nvarchar(50), BookCard nvarc
18、har(10), CreateTime datetime not null, ExpiredTime datetime not null, constraint pk_ReaderInfo_id primary key (ID)读者类别表(ReaderType)Create table ReaderType(ID int ,Name nvarchar(10),ReaderID int not null,Canborrow int,constraint pk_ReaderType_id primary key (ID)alter table ReaderType
19、; add constraint fk_ReaderType_ReaderInfo foreign key (ReaderID) references ReaderInfo (ID);*图书信息表(BookInfo)create table BookInfo( ID nvarchar(20) not null, Name nvarchar(50) , Typeid int, State binary , Creattime datetime , Price money ,
20、Press nvarchar(50) , IsCancellation binary , IDCancellation int , Note nvarchar(50) , Author nvarchar(10) , Page int , constraint pk_BookInfo_id primary key (ID)alter table BookInfo add constraint fk_BookInfo_BookType foreign key (Typeid) &#
21、160; references BookType (Typeid);图书类别表(BookType)create table BookType( Typeid int , Typename nvarchar(50), constraint pk_BookType_id primary key(Typeid)图书库存表(BookStock)Create table BookStock( ID int , BookID nvarchar(20) not null,constraint pk_BookStock_id primary key (ID) alter table
22、BookStock add constraint fk_BookStock_BookInfo foreign key (BookID) references BookInfo (ID);借书表(BookBorrow)create table BookBorrow( ID Numeric, BookID nvarchar(20), CardID Numeric, BorrowTime datetime, ReturnTime datetim
23、e, IsReturn nvarchar(10),constraint pk_BookBorrow_id primary key (ID)alter table BookBorrow add constraint fk_BookBorrow_BookInfo foreign key (BookID) references BookInfo (ID);罚款表(BookFines)create table BookFines( ID Nume
24、ric not null, ReaderID int not null, BookID nvarchar(20) not null, FinesTime datetime , FinesAmount money , FinesType nVarchar(10) , FinesReason nVarchar(50) ,constraint pk_BookFines_id primary key (ID)alter table BookFines add constraint fk_BookFines_ReaderInfo f
25、oreign key (ReaderID) references ReaderInfo (ID);alter table BookFines add constraint fk_BookFines_BookInfo foreign key (BookID) references BookInfo (ID);评价表(Evaluate)create tabl
26、e Evaluate( ID int not null, BookID int not null, ReaderID nvarchar(20) not null, Evaluate nvarchar(50),constraint pk_Evaluate_id primary key (ID) )alter table Evaluate add constraint fk_Evaluate_ReaderInfo foreign key (ReaderID)
27、0; references ReaderInfo (ID);alter table Evaluate add constraint fk_Evaluate_BookInfo foreign key (BookID) references ReaderInfo (ID);借阅室表LendRoom( ID int , Name nvarchar(10), LendRoomBookID nvarchar(20) ,constrain
28、t pk_LendRoom_id primary key (ID)alter table LendRoom add constraint fk_LendRoom_LendRoomBook foreign key (BookID) references BookInfo (BookID);借阅室书籍表LendRoomBookCreate table LendRoomBook( ID nvarchar(20) not null, BookID
29、 int not null, BookCount int , BookState binary ,constraint pk_LendRoomBook_id primary key (ID)alter table LendRoomBook add constraint fk_LendRoomBook_BookInfo foreign key (BookID) references BookInfo (ID);图书证表BookCardCre
30、ate table BookCard( ID Numeric , ReaderID int not null, Borrowed int ,constraint pk_BookCard_id primary key (ID)alter table BookCard add constraint fk_BookCard_ReaderInfo foreign key (ReaderID) references ReaderInfo (ID);
31、留言表Messagecreate table Msssage( ID int , ReaderID nvarchar(20) not null, details nvarchar(50) not null, constraint pk_Msssage_id primary key (ID)alter table Msssage add constraint fk_Msssage_ReaderInfo foreign key (ReaderID)
32、60; references ReaderInfo (ID);系统设置表SystemSetCreate table SystemSet(ID intUserPermissionSet nvarchar(10)Overdatepoint moneylostPrice moneyRenewTime datetimeBackupSet datetimeAnnounce nvarchar(50)CardReCost moneyCardfillprice moneyCardReTime datetimeModifyPerson nvarchar(10)Modifytime datetime constr