的核心问题。数据库及其应用的性能都建立在良好的数据库设计的基础之上,数据库的数据是一切操作的基础,如果数据库设计不好,那么其它一切用于提高数据库性能的方法收效都是有限的。数据库设计的关键是如何使设计的数据库能合理地存储用户的数据,方便用户进行数据处理。
设计数据库必须遵循一定的规则,在关系型数据库中,这种规则就是范式,范式是符合某一种级别的关系模式的集合。一般人们设计数据库遵循第三范式。即:数据库表中不包含已在其他表中包含的非主关键字信息。采用范式减少了数据冗余,节约了存储空间,同时加快了增、删、改的速度。
整个系统所包括的信息有图书信息、学生用户信息、管理员信息、图书状态信息、图书超期信息、图书预约信息、图书挂失信息。可将这些信息抽象为下列系统所需要的数据项和数据结构:
1)图书信息(编号,图书名称,作者,出版社,入库时间,借阅状态,预约状态)
2)学生用户信息(编号,,性别,所在班级,所在院系,密码,借书权限)
3)管理员信息(编号,管理权限,密码)
4)图书状态信息(图书编号,学生编号,借阅时间,归还时间,是否借出,是否预约)
5)图书超期信息(学生编号,图书编号,图书名称,超期时间)
6)图书预约信息(图书编号,学生,班级,图书名称,学生编号,图书作者)
7)图书挂失信息(丢失图书编号,学生编号,图书编号,图书名称)
注:带下划线表示主键
3.1.2图书信息表结构设计
图书信息表主要用于存储图书馆中所藏图书的相关信息,其中的相关信息是在图书入库时由图书管理员进行添加完善,此表主要用于读者和图书管理员对馆中图书的查询,系统用户根据图书的某个属性进行查询,便可得知图书的其他相关信息。表的具体结果如下:
表3.1图书信息表book
字段名称 数据类型 字段长度 可否为空 说明 BookNO int Default No (Key)图书编号 BookName varchar 50 Yes 书名 Author varchar 50 Yes 作者 Publishment varchar 50 Yes 出版社 ButTime varchar 50 Yes 图书入库时间 Borrowed varchar 50 Yes 借阅状态 Ordered varchar 50 Yes 预约状态 3.1.3 学生用户信息表结构设计
学生用户信息表的设计是为了图书馆管理员对学生进行管理,其中学生StuNO号码都是唯一的,是学生在借阅图书时需要输入对读者身份进行识别的信息,读者班级、院系等信息是为了与读者进行联系,借阅权限决定了读者是否可借阅图书。表的具体结构设计如下:
表3.2学生用户信息表student
字段名称 数据类型 字段长度 可否为空 说明 StuNO int Default No (Key)学生编号 StuName varchar 50 Yes StuSex varchar 50 Yes 性别 Class varchar 50 Yes 班级 Department varchar 50 Yes 院系 Password varchar 20 Yes 密码 Permitted varchar 50 Yes 借阅权限 3.1.4管理员信息表结构设计
此表的设计是为了对不同身份的管理员进行分类,根据管理需求的不同对其权限进行的设置,用于规定不同类型管理员的管理权限,表的具体结构设计如下:
表3.3 管理员信息表manager
字段名称 数据类型 字段长度 可否为空 说明 mgNO int Default No (Key)管理员编号 permitted varchar 50 Yes 管理员权限 Pass
word varchar 50 Yes 密码 3.1.5图书状态信息表结构设计
该表的设计是用于对学生借阅图书进行管理,表中图书BookNO属性是对借阅图书的唯一性识别标识,学生StuNO号记录借阅的相应学生,借出时间记录了相应的归还时间,Borrowed和Ordered字段用来判断图书是否被借出和是否被预约,表的具体结构设计如下:
表 3.4 图书状态信息表record
字段名称 数据类型 字段长度 可否为空 说明 BookNO int