在开发图书管理系统之前首先要做的是数据库的设计,要想做一个完整的项目,数据库就决定了这个项目的成败,所以本系统采用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表