归还记录信息实体实体 归还时间读者借书证编号 书籍类别编号
图5-5记录信息实体E-R图
还书信息实归还 书籍实信息登书类别实体 读者实借阅 借阅信息实罚款 罚款信息实
图5-6总的信息实体E-R图
5.4 E-R图向关系模型转换
在二元联系中,数据模型实体间的联系有一对一(1:1)、一对多(1:n)和多对多(m:n)三种。
两实体的联系为1:1,可将联系与任意一端对应的关系模式合并。具体做法是:将两个实体各用一个关系表示,然后将其中一个关系的关键字和联系的属性加入另
11
一个关系的属性。一个关系的关键字存储在另一个关系中时,称为另一个关系的外键。
一个1:n联系可以与“1”端对应的关系模式合并。首先,一个实体用1个关系表示,然后将联系的属性和“n”端对应关系的键置于“1”端对应的关系中。 一个m:n转换为一个关系模式。多对多联系不能与任一端实体对应的关系模式合并,否则会引起插入异常和修改异常。联系本身的属性以及与该联系相连的实体的键都将转换为该关系的属性,关系的键是各实体键的组合。
根据以上转化原则,得到以下一组关系模式,关系模式的码用下划线标出。 书籍类别(种类编号,种类名称)
读者(借书证编号,读者姓名,读者性别,读者种类,登记时期)
书籍(书籍编号,书籍名称,书籍类别,书记作者,出版社名称,出版日期,登记 日 期)
借阅(借书证编号,书籍编号,读者借书时间) 还书(借书证编号,书籍编号,读者还书时间)
罚款(借书证编号,借书证编号,书籍编号,读者姓名,读者借书时间)
12
第六章 数据库设计
6.1 逻辑结构设计
根据对需求分析得到的数据结构进行分析,按数据输入输出的要求,确定表和表间的关系,并进行验证、调整、修改、完善,使其能够实现用户对数据和功能的要求。本系统根据分析确定系统要设置如下表(为了在应用程序中方便使用表名、字段名,在设计表时均采用英文简称或全称,在此为了便于理解均使用它们的中文别名):
书籍类别表,包括字段:种类编号,种类名称
读者表,包括字段:借书证编号,读者姓名,读者性别,读者种类,登记时期 书籍表,包括字段:书籍编号,书籍名称,书籍类别,书记作者,出版社名称,出
版日期,登记日期
借阅表,包括字段:借书证编号,书籍编号,读者借书时间 还书表,包括字段:借书证编号,书籍编号,读者还书时间
罚款表,包括字段:借书证编号,读者姓名,借书证编号,书籍编号,读者借
书时间
6.2 物理结构设计
下面列出选课系统所有表的结构,为了便于理解,将部分数据列出。
1.图书信息基本表
表6-1 tab_bookcardinfo表结构
字段名称 bookcard_id pas_id bookcard_money borrownum bookcardcomeday 数据类型 数字 数字 数字 数字 日期/时间 字段大小 10 10 10 2 16 索引 有 有 无 有 无 说明 书证编号 客户编号 办理价格默认值50元 允许一次性借书多少本 书证签发日期
13
图书类别数据表:表名“tab_bookclassinfo”,结构见表6-2
表6-2 tab_bookclassinfo表结构
字段名称 bookclass_id bookclass_name 数据类型 数字 文本 字段大小 10 20 索引 有 无 说明 图书类别编号 图书类别名称 图书书目数据表:表名“tab_bookinfo”,结构见表6-3
表6-3 tab_bookinfo表结构
字段名称 book_id book_name book_writer book_classid book_publishid book_pub_times book_version book_price book_information 数据类型 数字 文本 文本 数字 数字 文本 文本 文本 文本 字段大小 10 60 10 10 10 40 30 10 50 索引 有 无 无 无 无 无 无 无 无 说明 图书编号 书名 作者 类别编号 出版社编号 版次 版本号 定价 备注信息 出版社类别数据表:表名“tab_bookpublish”,结构见表6-4
表6-4 tab_bookpublish表结构
字段名称 book_publishid book_publishname 数据类型 数字 文本 字段大小 10 60 索引 有 无 说明 书籍出版社编号 出版社名称
14
图书借阅数据表:表名“tab_borrow_return”,结构见表6-5
表6-5 tab_borrow_return表结构
字段名称 bookcard_id book_id y_n_return borrowday returnday 数据类型 数字 数字 是/否 日期/时间 日期/时间 字段大小 50 50 14 14 索引 有 有 无 无 无 说明 借书证号码 书籍编号 是否归还 借书日期 还书日期 馆内员工数据表:表名“tab_empinfo”,结构见表6-6
表6-6 tab_empinfo表结构
字段名称 employer_id emp_name emp_sex emp_age emp_birthday emp_address emp_comeday emp_photo 数据类型 数字 文本 文本 数字 日期/时间 文本 日期/时间 OLE 对象 字段大小 10 10 4 10 16 60 16 索引 有 无 无 无 无 无 无 说明 员工编号 员工姓名 员工性别 员工年龄 员工出生年月日 员工住址 员工登记日期 员工照片 用户权限数据表:表名“tab_human”,结构见表6-7
表6-7 tab_human表结构
字段名称 human_id human_select human_update 数据类型 数字 是/否 是/否 字段大小 50 索引 有 无 无 说明 权限编号 选择权限 更新权限 15