在开发图书管理系统之前首先要做的是数据库的设计,要想做一个完整的项目,数据库就决定了这个项目的成败,所以本系统采用SQL Server2005数据库,当然SQL Server2008数据库也行。在设计数据库时要注意创建表的方式,使用create关键字创建一张表,这样的好处是不管使用哪个类型的数据库(针对2005和2008而言),只要数据库代码复制后直接运行就可以用很方便的创建表,而不需要每次都去创建新表。下面是一些本系统涉及到的表,感兴趣的可以看一下!
数据库概念结构设计
读者实体:读者编号、读者姓名、出生日期、性别、电话、所在院系、注册日期
读者类型:读者类型编号、读者类型名称、可借阅天数、可借阅数量
图书实体:图书编号ISBN、图书名称、作者、出版社、出版日期、印刷次数、单价、图书类型
用户:用户编号、用户名、密码
数据库逻辑结构设计
(1)图书(图书编号ISBN,图书类型编号,图书名称,作者,出版社,出版日期,印刷次数,单价)
(2)图书类型(图书类型编号,图书类型名称)
(3)读者(读者编号,读者类型编号,姓名,年龄,性别,电话,所在系部,注册日期)
(4)读者类型(读者类型编号,读者类型名称,最多可借图书数量,最长可借图书天数)
(5)用户(用户编号,用户名,密码)
(6)图书借阅(读者编号,图书编号,借阅日期,归还日期,罚金)
3.1.3 数据库物理结构设计
数据库管理系统选择SQL Server2005,根据SQL Server2005特点,设计数据表如下:
表1 读者信息表 reader
字段名 | 类型 | 长度 | 是否为空 | 描述 |
readerid | char | 8 | 否 | 读者编号(主键) |
type | int |
| 是 | 读者类型编号 |
name | char | 20 | 是 | 读者姓名 |
age | int |
| 是 | 年龄 |
sex | char | 4 | 是 | 性别 |
phone | char | 11 | 是 | 联系电话 |
dept | varchar | 20 | 是 | 所在系部 |
regdate | date |
| 是 | 注册日期 |
表2 读者类型表 readertype
字段名 | 类型 | 长度 | 是否为空 | 描述 |
id | int |
| 否 | 读者类型编号(主键) |
typename | varchar | 20 | 是 | 读者类型名称 |
maxborrownum | int |
| 是 | 最多可借阅图书数量 |
limit | int |
| 是 | 最长可借阅图书天数 |
表3 用户表users
字段名 | 类型 | 长度 | 是否为空 | 描述 |
id | int |
| 否 | 用户编号(主键) |
name | varchar | 20 | 是 | 用户名称 |
password | varchar | 20 | 是 | 用户密码 |
表4 图书信息表 book
字段名 | 类型 | 长度 | 是否为空 | 描述 |
ISBN | char | 10 | 否 | 图书的ISBN(主键) |
typeid | varchar | 10 | 是 | 图书类型编号 |
bookname | varchar | 30 | 是 | 图书名称 |
author | varchar | 30 | 是 | 作者 |
publish | varchar | 30 | 是 | 出版社 |
publishdate | date |
| 是 | 出版日期 |
publishtime | int |
| 是 | 印刷次数 |
unitprice | money |
| 是 | 单价 |
表5 图书类型表 booktype
字段名 | 类型 | 长度 | 是否为空 | 描述 |
id | int |
| 否 | 图书类型编号(主键) |
typename | varchar | 30 | 是 | 图书类型名称 |
表6 图书借阅表 表6图书借阅表bookborrow
字段名 | 类型 | 长度 | 是否为空 | 描述 |
readerid | char | 8 | 否 | 读者编号(组合主键) |
ISBN | char | 10 | 否 | 图书ISBN(组合主键) |
borrowdate | date |
| 是 | 借阅日期 |
returndate | date |
| 是 | 归还日期 |
fine | money |
| 是 | 罚金 |
设计后的表如下:
1:book表
2:booktype表
3:bookborrow表
4:reader表
5:readertype表
6:users表