数据库应用设计设计报告
数据库应用设计设计报告
1.http://www.csdn.net/
上网搜索数据库设计报告
2.
图书管理系统
a) 图书室有各种图书10万余册。
b) 每种图书都有书名、书号(ISBN)、一名或多名作者(译者)、出版社、定价、内容简介和目录等。
c) 借书证记录有借阅者的编号、姓名、学号、所在单位或专业班级、职业、签发日期、有效期限等。
d) 凭借书证借书,每人每次最多能借8本书,累积借书不能超过20本。借书期限最长为30天。
二、 需求分析
作为一个图书管理系统,应该给用户提供方便,简洁的界面应用,对图书借阅归还的流通中图书的详细记录进行归档,实现新进图书的数据录入,实现对所有购进图书的分类查询和分类统计,能够按书名、作者等分类查询现有图书的数量,记录借阅者的个人资料和所借图书的书名、书号数据等,借书时如果每次超过限量或累积超过限量,提示相应信息,并拒绝借阅等功能都是必不可少的。
针对图书管理系统,有3类核心对象:借阅者,图书管理员,超级管理员。分别实现图书的流通,图书的管理,图书管理系统的管理。
系统包含对象如下:
图书:书号ISBN,书名,别名,版本,作者,出版社,类别,出版日期,进馆日期,数量,简介,定价
借阅者:ID号,登录名,姓名,性别,班级,学院,联系电话,E-mail,年龄,密码,学号,创建日期,
图书管理员:ID号,姓名,性别,联系电话,E-mail,年龄,密码,登录名,创建日期
超级管理员:登录名,密码,与DBS权
关系图如下:
三、 逻辑结构设计
图书管理系统数据项描述如下:
表book:
属性名 |
数据描述 |
数据类型 |
是否为空 |
备注 |
b_id |
图书在馆编号ISBN |
Varchar(20) |
否 |
主键 |
b_name |
书名 |
Varchar(20) |
否 |
|
b_byname |
别名 |
Varchar(20) |
是 |
|
b_version |
版本 |
smallint |
是 |
|
b_author |
作者 |
Varchar(20) |
否 |
|
b_press |
出版社 |
Varchar(20) |
否 |
|
b_type |
图书类别 |
Char(10) |
否 |
|
b_pdate |
出版日期 |
Date() |
是 |
|
b_indate |
进馆日期 |
Date() |
否 |
|
b_num |
在馆数量 |
int |
否 |
|
b_intro |
简介 |
Varchar(200) |
是 |
|
表user
属性名 |
数据描述 |
数据类型 |
是否为空 |
备注 |
u_id |
用户编号 |
Char(10) |
否 |
主键 |
u_name |
真实姓名 |
Varchar(10) |
否 |
|
u_sex |
性别 |
男或女 |
否 |
|
u_class |
班级 |
Varchar(20) |
是 |
|
u_dept |
学院 |
Varchar(20) |
是 |
|
u_tel |
电话号码 |
Numeric(11) |
是 |
|
u_job |
工作状况 |
Char(10) |
是 |
|
u_mailbox |
邮箱 |
Varchar(50) |
否 |
|
u_birthday |
生日 |
Date() |
否 |
|
u_login |
登录名 |
Varchar(20) |
否 |
|
u_date |
创建日期 |
Date() |
否 |
|
u_type |
用户类型 |
Useradmin,reder,bookadmin,recordadmin |
否 |
|
u_picurl |
用户照片 |
Varchar(50) |
否 |
|
u_password |
用户密码 |
Varchar(20) |
否 |
初始123456 |
表record
属性名 |
数据描述 |
数据类型 |
是否为空 |
备注 |
|
u_id |
用户编号 |
Char(10) |
否 |
外键 |
主键 |
b_id |
图书编号 |
Varchar(20) |
否 |
外键 |
|
borrow_date |
借阅日期 |
Date() |
否 |
|
|
borrow_num |
借阅本数 |
int |
否 |
如还书本书>借书则错误,如<则修改 |
表news
属性名 |
数据描述 |
数据类型 |
备注 |
n_name |
新闻名称 |
Varchar(50) |
主键 |
n_type |
新闻类型 |
Varchar(10) |
|
n_content |
新闻类容 |
Varchar(500) |
|
n_date |
建立日期 |
date |
|
表pulishment
属性名 |
数据描述 |
数据类型 |
是否为空 |
备注 |
P_name |
罚款名称 |
Char(10) |
否 |
主键 |
P_money |
罚款基本数 |
Float |
否 |
|
代码:
--建立数据库
create database if not exists lms;
use lms;
--建立表news
create table news(
n_name varchar(50) primary key,
n_type ENUM('newsmsg','systemmsg'),
n_content varchar(5000),
n_date date
);
--建立表books
create table book(
b_id char(10) primary key,
b_mname varchar(20) not null,
b_bname varchar(20),
b_version smallint,
b_author varchar(20),
b_press varchar(20),
b_type char(10),
b_pdate date,
b_indate date,
b_num smallint UNSIGNED not null,
b_intro varchar(500)
);
--建立表user
create table user(
u_id char(20) primary key,
u_name char(10),
sex ENUM('男','女'),
u_class varchar(20),
u_dept varchar(20),
u_tel numeric(11) UNSIGNED,
u_mailbox varchar(50) not null,
u_birthday date,
u_login char(10) not null,
u_password char(10) not null,
u_type ENUM('reader','ueradmin','bookadmin','recordadmin'),
u_picurl varchar(50)
);
--建立表record
create table record(
u_id char(10),
b_id char(10),
borrow_date date not null,
borrow_num smallint UNSIGNED not null,
primary key(u_id,b_id),
foreign key (u_id) references user(u_id),
foreign key (b_id) references book(b_id)
);
--建立表pulishment
create table pulishment(
p_name char(10) primary key,
p_money float not null
);
四、 图书借阅流程
a) 借书:
过程:登陆界面,登陆时判断用户是否存在,不存在的话转入,注册页面,存在的话进行借书操作,检查要借的书是否存在,不存在的话,返回借阅状态,存在的话检查书的数量,数量为0的话转入借阅环节,够的话,借出该书并且记录下借阅信息
b) 还书:
过程:登陆界面:检测用户是否存在,不存在的话跳入注册页面,存在的话进行还书操作,检查是否存在借书,不存在的话,无法还书,跳转到还书页面,存在借书的话,查看该书的日期,并且按公式算是否超期,不超期的话还书成功,删除借阅信息,超期的话,计算出,罚款数目,如交罚款, 还书成功,删除借阅信息,不交的话,转入还书状态
五、 用户管理
添加图书管理员或者借阅者
过程:超级管理员登陆.然后进行添加用户操作,分为添加管理员和添加借阅者,不重名的话添加成功,并设置初始密码,权限和角色,重名的话提示用户已经存在,并返回添加用户状态.