当前位置:文档之家› 数据库详细设计说明书

数据库详细设计说明书

修正&标记表1.1目的本文为图书馆管理课程设计SQL Server功能规范说明书。

本说明书将:●描述数据库设计的目的●说明数据库设计中的主要组成部分●说明数据库设计中各功能的实现1.2内容本文档主要内容包括对数据库设计结构的总体描述,对数据库中各种对象的描述(包括对象的名称、对象的属性、对象和其他对象直接的关系)。

本文档中包含对以下数据库内容的描述:●数据表●视图●存储过程●触发器●约束在数据库主要对象之外,本文还将描述数据库安全性设置、数据库属性设置和数据库备份策略,为数据库管理员维护数据库安全稳定地运行提供参考。

1.3与其他项目的关联本项目的数据库设计与本项目(Web部分和Windows部分)功能密切相关。

本案例项目的数据库将按照项目程序部分的功能需求而设计,数据库设计将配合设计案例的程序部分,以实现一个功能完备的真实环境内的应用。

表1.4表设计概述根据设计的系统功能,数据库将以图书信息为中心存储相关数据,配合SQL Server 数据库系统中提供的数据管理,实现图书的借阅、归还、续借及系统设置等业务功能。

数据库设计将以存储读者信息的读者表为基础,连接多张相关表以实现对以下关系的支持:●读者借书记录●读者还书记录●读者续借记录●读者罚款记录●读者对图书的评价●读者对图书和图书馆的建议及留言数据库系统主要的实体关系如图0-1所示。

图0-11.5读者用户信息表(ReaderInfo)概述读者用户信息表用于记录读者基本信息,并作为基础表与其他表连接。

表定义读者用户信息表定义如表0-1所示。

表0-1主键读者用户信息表的主键是读者用户信息表编号字段,类型为整型,设置自动增量。

约束无索引主键用户信息ID具有自动创建的聚集索引。

1.6管理员用户信息表(UserInfo)概述管理员用户信息表用于记录系统管理员的各项资料。

表中都记录了管理员的账号和密码,是各用户的详细记录。

表定义管理员用户信息表定义如表0-2所示。

表0-2主键管理员用户信息表的主键是管理员用户ID号,类型为整型,设置自动增量。

约束无其他约束。

索引主键字段管理员编号具有自动创建的聚集索引。

读者类别表(ReaderType)读者类别表用于记录读者信息,包括读者ID、名字等。

读者类别表通过读者编号与借书表关联。

表定义读者类别表定义如表0-3所示。

表0-3主键读者类别表的主键是读者表ID字段,类型为整型,设置自动增量。

约束无其他约束。

索引主键字段薪资编号具有自动创建的聚集索引。

图书信息表(BookInfo)图书信息表用于记录图书信息(图书名称、图书状态等),通过字段图书类别号与图书类别表关联。

表定义图书信息表定义如表0-4所示。

表0-4主键图书信息表的主键是图书编号字段,类型为整型。

约束图书信息表中的图书编号不可相同;图书信息表中的状态类型字段只能取“被借”、“续借”、“以还”。

索引主键字段考勤编号具有自动创建的聚集索引。

图书类别表(BookType)图书类别表用于记录图书的类别。

图书类别表中的基本信息包括:图书的类别、申请状态、借书开始的时间和借书归还的时间等。

通过类别ID字段与员工表关联。

表定义图书类别表定义如表0-5所示。

表0-5主键图书类别表的主键是Typeid字段,类型为整型,设置自动增量。

约束请假开始时间应小于请假结束时间;申请状态字段的取值可以是:“已提交”、“已取消”、“已批准”、“已否决”。

索引主键字段请假申请编号具有自动创建的聚集索引。

1.7图书库存表(BookStock)概述图书库存表用于图书总库存的记录。

库存表中的基本信息包括:库存ID,图书ID。

通过字段,图书ID与图书信息表关联。

表定义图书库存表定义如表0-6所示。

表0-6主键图书库存表的主键是图书库存ID字段,类型为整型,不设置自动增量。

索引主键字段加班申请编号具有自动创建的聚集索引。

1.8借书表(BookBorrowReturn)借书表用于保存借书状态信息。

借书表中的基本信息包括:借书表ID标识号、图书编号、证件号、借书时间、还书时间等。

通过图书ID编号与图书信息表关联。

表定义借书表定义如表0-7所示。

表0-7主键借书表的主键是图书借书表ID字段,类型为整型,不设置自动增量。

约束还书时间要大于借书时间索引主键字段业绩评定编号具有自动创建的聚集索引。

1.9罚款表(BookFines)概述罚款表对超期或者丢失的书籍进行评定罚款以及记录。

表BookFines中的基本信息包括:书籍ID、读者ID、罚款ID等。

通过对书籍罚款的记录以及分类,可以清晰的看出书籍的情况。

表定义罚款表定义如表0-8所示。

表0-8主键系统配置表的主键是罚款ID字段,类型为整型,设置自动增量。

约束罚款类别只有三类,0,1,2各为丢失、超期、挂失索引主键字段具有自动创建的聚集索引。

1.10评价表(Evaluate)概述评价表用于保存读者对书籍看法的记录。

评价表中的基本信息包括:评价ID、图书ID、书籍ID、评价等。

表定义评价表定义如表0-9所示。

表0-9主键评价表的主键是评价编号字段,类型为整型,设置自动增量。

约束无其他约束。

索引主键字段评价编号具有自动创建的聚集索引。

1.11借阅室表(LendRoom)概述借阅室表用于将库存书籍分类出若干借阅室的记录。

借阅室表的基本信息包括:借阅室编号,借阅室名称、和借阅书架的编号。

表定义借阅室表定义如表0-10所示。

表0-10主键借阅室表的主键是借阅室编号字段,类型为整型,设置自动增量。

无其他约束。

索引主键字段借阅室表编号具有自动创建的聚集索引。

1.12借阅室书籍表(LendRoomBook)概述借阅室书籍表用于记录借阅室书籍表类型。

借阅室书籍表的基本信息包括:借阅室书籍ID和书籍ID、书籍状态、书籍总和。

表定义借阅室书籍表定义如表0-11所示。

表0-11主键借阅室表的主键是借阅室书籍表编号字段,类型为整型,设置自动增量。

约束无主键字段借阅室书籍表编号具有自动创建的聚集索引。

1.13图书证表(BookCard)概述图书证表用于记录图书证ID信息。

图书证表的基本信息包括:图书证表编号、读者编号等。

表定义图书证表定义如表0-12所示。

表0-12主键图书证表的主键是图书证ID编号字段,类型是整型,设置自动增量。

约束无。

索引主键字段图书证表编号具有自动创建的聚集索引。

1.14留言表(Message)概述留言表用于记录读者对图书和图书馆相关的留言。

留言表包含的主要内容有:留言表编号、读者编号。

表定义留言表定义如表0-13所示。

表0-13主键留言表编号。

约束无其他约束。

索引主键字段留言表编号具有自动创建的聚集索引。

1.15系统设置表(SystemSet)概述系统设置表用于系统各详细设置信息。

系统设置表包含的主要内容有:用户权限设置、赔偿价格参照、公告、证件相关各信息和备份恢复等。

表定义系统设置表定义如表0-13所示。

表0-14主键系统设置表编号。

约束无其他约束。

索引主键字段系统设置表编号具有自动创建的聚集索引。

1.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 table 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 nvarchar(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 ReaderTypeadd 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,Press nvarchar(50),IsCancellation binary,IDCancellation int,Note nvarchar(50),Author nvarchar(10),Page int,constraint pk_BookInfo_id primary key(ID))alter table BookInfoadd constraint fk_BookInfo_BookType foreign key (Typeid)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 BookStockadd constraint fk_BookStock_BookInfo foreign key (BookID)references BookInfo (ID);借书表(BookBorrow)create table BookBorrow(ID Numeric,BookID nvarchar(20),CardID Numeric,BorrowTime datetime,ReturnTime datetime,IsReturn nvarchar(10),constraint pk_BookBorrow_id primary key(ID))alter table BookBorrowadd constraint fk_BookBorrow_BookInfo foreign key (BookID) references BookInfo (ID);罚款表(BookFines)create table BookFines(ID Numeric 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 BookFinesadd constraint fk_BookFines_ReaderInfo foreign key (ReaderID) references ReaderInfo (ID);alter table BookFinesadd constraint fk_BookFines_BookInfo foreign key (BookID)references BookInfo (ID);评价表(Evaluate)create table 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 Evaluateadd constraint fk_Evaluate_ReaderInfo foreign key (ReaderID)references ReaderInfo (ID);alter table Evaluateadd constraint fk_Evaluate_BookInfo foreign key (BookID)references ReaderInfo (ID);借阅室表LendRoom(ID int ,Name nvarchar(10),LendRoomBookID nvarchar(20) ,constraint pk_LendRoom_id primary key(ID)alter table LendRoomadd constraint fk_LendRoom_LendRoomBook foreign key (BookID) references BookInfo (BookID);借阅室书籍表LendRoomBookCreate table LendRoomBook(ID nvarchar(20)not null,BookID int not null,BookCount int,BookState binary,constraint pk_LendRoomBook_id primary key(ID))alter table LendRoomBookadd constraint fk_LendRoomBook_BookInfo foreign key (BookID) references BookInfo (ID);图书证表BookCardCreate table BookCard(ID Numeric,ReaderID int not null,Borrowed int,constraint pk_BookCard_id primary key(ID))alter table BookCardadd constraint fk_BookCard_ReaderInfo foreign key (ReaderID) references ReaderInfo (ID);留言表Messagecreate table Msssage(ID int,ReaderID nvarchar(20)not null,details nvarchar(50)not null,constraint pk_Msssage_id primary key(ID))alter table Msssageadd constraint fk_Msssage_ReaderInfo foreign key (ReaderID)references ReaderInfo (ID);系统设置表SystemSetCreate table SystemSet(ID intUserPermissionSet nvarchar(10)Overdatepoint moneylostPrice moneyRenewTime datetimeBackupSet datetimeAnnounce nvarchar(50)CardReCost moneyCardfillprice moneyCardReTime datetimeModifyPerson nvarchar(10)Modifytime datetimeconstraint pk_SystemSet_id primary key(ID))视图1.17系统设置表(SystemSet)概述●此视图通过左外连接员工和部门表得到了员工的详细信息,其中包括员工的基本信息、员工的部门信息和员工经理信息。

相关主题