数据库原理课程设计 100分求一份数据库原理课程设计的实验报告
大家好,今天来为大家解答数据库原理课程设计这个问题的一些问题点,包括100分求一份数据库原理课程设计的实验报告也一样很多人还不知道,因此呢,今天就来为大家分析分析,现在让我们一起来看看吧!如果解决了您的问题,还望您关注下本站哦,谢谢~
100分求一份数据库原理课程设计的实验报告
(图放不上去呀我自己做的E-R图)
计算机科学与信息学院
课程设计报告
课程名称:数据库概论课程设计
专业:网络方向
班级:====
学号:===
姓名:闫娟
题目:网上购书系统
指导教师:肖淑芬
2011年6月
目录
一、课程设计的背景来源 3
二、网上购书系统调查及前景 4
三、网上购书设计思想 4
1、前台系统工作流程 5
2、后台系统工作流程 6
四、网上书店工作过程的内容 6
五、数据库设计 7
1、数据项 7
2、数据结构 8
3、关系模式的设计 8
4、视图的设计 9
六、网上购书E-R图 10
六、系统的源程序 15
七、系统评价及心得体会 20
一、课程设计的背景来源
1,其实写这个课程设计写得比较匆忙,马上其他可就要考试了,本想找个男的题目来挑战下自己,后来还是因为时间需要,所以选了个相对来说我们生活比较容易接近的
2,随着现在社会的发展,网络已经成为一个市场很大的交易平台,很多人由于时间需要或者各方面原因都把网上购物作为一种消费方式,有时我们在书店要花很长时间去找一本书,有时还找不到,记得有次在孝感学院图书馆找一本概率论辅导书,花了很长很长时间呀,所以我深有体会,还是感觉在网上购书比较简单,方便。
3,班上有很多同学都从事网上购物,我刚好想利用自己的专业知识来学习下这方面的知识,自己查查资料,把这个课程设计做好。
二、网上购书系统调查及前景
人们喜欢通过阅览书籍拓展自己的知识视野,可在实际生活的购书过程中人们却遇到了不少麻烦,比如购书人多,挑书难,搬书重等,因此既方便又快捷的网络购书便成为了一种很有潜力的购书消费方式。信息时代,电子商务已经成为我们现实生活中不可缺少的一个重要组成部分,同时它以一种特殊的方式改变着我们的生活。根据调查结果显示,网民上网以获取信息为主要目的占5 3.1%。目前我国上网购物的群体中,绝大多数是年轻人,他们大多数是收入稳定、文化水平较高的中青年,网上消费已经日益成为他们生活中的一种重要的消费方式,他们成为了最有潜力的未来网上消费者。
三、网上购书设计思想
首先网上购书系统听起来是个很杂的程序,因为有很多很多书,也有很多很多人来买,但是其实我们简单的可以把它分为两个模块,这样我们就能很好的理解了,网上书店主要由前台会员管理模块和后台管理员模块两部分组成。
前台功能模块主要用于实现会员注册,登录,修改个人信息,分类查看书目信息、购书、管理购物车、结帐、查看各种服务条款等功能。
后台管理模块主要用于实现后台管理人员对会员,商品,物流,订单和系统的管理等功能。
1、前台系统工作流程
首先当我们用户登陆这个网站时,一开始就会出现让你登陆,如果是你会员,你可以直接登录,如果你不是会员,你要注册个账号。
1、当你是会员时,你可以查看你的各项服务,比如说上次你收藏了什么书籍,以及你喜欢的书的种类,在可以看下前几次你购买书的情况,在可以修改个人信息,修改密码等,你也可以查看自己网上交易情况,看下自己买的书的情况,以及看上什么书了,可以把它放回购物车,方便自己购买。
2、当你是非会员时,你要先进行注册,填写自己的基本信息,当你填好后,你也是其中一员了,你也同样可以向会员那样找自己的书了,相对来说比较方便。
3、还有人不注册,只是进来逛下网站,看看自己是否有必要买一些书。
2、后台系统工作流程
后台系统工作流程主要用于实现后台管理人员对会员,商品,物流,订单和系统的管理等功能,他要对会员的登记进行统计,以及购物等方面的内容管理
四、网上书店工作过程的内容
1、管理员信息,包括数据项有:管理员编号、管理员账号、管理员密码。
2、会员信息,包括数据项有:会员账号、会员密码、会员昵称、会员E-mail、会员级别(管理员设定)。
3、图书信息,包括数据项有:图书编号、图书名称、作者、出版社编号、出版日期、图书类别编号、图书简介。
(⑴出版社信息,包括数据项有:出版社编号、出版社名称。
⑵图书类别信息,包括数据项有:图书类别编号、图书类别名称。)
4、图书订单,包括数据项有:会员账号、下定单日期、收货地址、收货地址邮编、收货人姓名、收货人联系方式、送货方式编号、总费用、图书名称、现已售出量情况。
5、购物车,包括数据项有:会员账号、每种图书名称、每种图书市场价格、每种图书网站价格、每种图书数量、每种图书的价格、图书总价。
五、数据库设计
1、数据项
数据项
数据项名数据类型长度别名取值范围
会员编号字符型 15会员的编号
姓名文本型 20会员的姓名
密码文本型 20会员的密码
电话字符型 12会员的电话
地址文本型 50会员的地址
商品编号字符型 15商品的编号
类型文本型 10商品的类型
名称文本型 20商品的名称
价格整型 6商品的价格
简介文本型 500商品的简介
图片图片型商品的图片
购物车编号字符型 10购物车的编号
商品数量整型 10购买商品的数量
订单编号字符型 15购物时生成的订单
订单日期时间型 10购买商品的时间
2、数据结构
系统需求数据结构
数据结构名含义说明组成
会员记录会员的基本信息会员编号、姓名、密码、电话、地址
商品记录销售商提供的商品信息商品编号、类型、名称、价格、简介、图片
订购记录会员的购物信息会员编号、商品编号、订单编号、订单日期
购物车存储会员需要购买的商品会员编号、商品编号、购物车编号、商品数量
3、关系模式的设计
会员
数据项名数据类型长度别名是否为空主外键
会员编号字符型 15会员编号否主键
姓名文本型 20姓名否
密码文本型 20密码否
电话字符型 12电话否
地址文本型 50地址否
商品
数据项名数据类型长度别名是否为空主外键
商品编号字符型 15商品编号否主键
类型字符型 15类型否
名称字符型 20名称否
价格整型 10价格否
简介文本型 500简介
图片 image型 100图片
订购
数据项名数据类型长度别名是否为空主外键
会员编号字符型 15会员编号否外键主键
商品编号字符型 10商品编号否外键
订单编号字符型 10订单编号否
订单日期日期型 10订单日期否
购物车
数据项名数据类型长度别名是否为空主外键
会员编号字符型 15会员编号否主键
商品编号字符型 15商品编号否
购物车编号字符型 15购物车编号否
商品数量整型 6商品数量否
4、视图的设计
搜索商品视图
数据项名数据类型长度别名是否为空
名称字符型 10名称否
类型字符型 10类型否
价格整型 10价格否
简介文本型 4简介否
六、网上购书E-R图
否是
网上书店系统业务流程:
网上书店前台管理功能结构图:
六、系统的源程序
ackage cart;
import java.util.Vector;
public class Cart{
Vector v= new Vector();
String act= null;
String item= null;
private void addItem(String id){
v.addElement(id);
}
private void removeItem(String id){
v.removeElement(id);
}
public void setItem(String id){
item= id;
}
public void setAct(String s){
act= s;
}
public String[] getItems(){
String[] s= new String[v.size()];
v.copyInto(s);
return s;
}
public void processRequest(){
if(act.equals("add"))
addItem(item);
else if(act.equals("remove"))
removeItem(item);
// reset at the end of the request
reset();
}
// reset
private void reset(){
act= null;
item= null;
}
public void clearAll(){
v.removeAllElements();
}
}
现实页面信息,提示等操作的设计:
package spage;
import java.sql.*;
public class ShowPage
{
private String str="";
//显示页号为p的一页(user)
public String printPage(ResultSet rs, int p, int size)
{
str="";
//将访问游标定位到页号为p的页要显示的第一条记录的位置
try{
for(int k=0;k<(p-1)*size;k++)
rs.next();
}
catch(SQLException e){}
for(int iPage=1; iPage<=size; iPage++){
str+= printRow(rs,iPage,p);
try{
if(!rs.next()) break;
}
catch(Exception e){}
}
return str;
}
//显示单行记录(user)
public String printRow( ResultSet rs,int i,int p)
{
String temp="";
try{
int id=rs.getInt("userid");
temp+="<tr align='center' bgcolor='#FFFAF7'>";
temp+="<td><a href='javaScript:seeUser("+id+")'>"+rs.getString("name")+"</a></td>";
temp+="<td>"+rs.getString("sex")+"</td>";
temp+="<td>"+rs.getString("phone")+"</td>";
temp+="<td>"+rs.getString("address")+"</td>";
temp+="<td><a href='updateuser.jsp?updateid="+id+"'>修改</a></td>";
temp+="<td><a href='dealdeleteuser.jsp?delid="+id+"'>删除</a></td>";
temp+="</tr>";
}
catch(SQLException e){}
return temp;
}
//显示页号为p的一页(book)
public String bookPage(ResultSet rs, int p, int size,boolean f)
{
str="";
//将访问游标定位到页号为p的页要显示的第一条记录的位置
try{
for(int k=0;k<(p-1)*size;k++)
rs.next();
}
catch(SQLException e){}
for(int iPage=1; iPage<=size; iPage++){
str+= bookRow(rs,iPage,p,f);
try{
if(!rs.next()) break;
}
catch(Exception e){}
}
return str;
}
//显示单行记录(book)
public String bookRow( ResultSet rs,int i,int p,boolean f)
{
String temp="";
try{
int id=rs.getInt("bookid");
temp+="<tr align='center'>";
temp+="<td><a href='detail.jsp?detailid="+id+"'>"+rs.getString("bookname")+"</a></td>";
temp+="<td>"+rs.getString("author")+"</td>";
temp+="<td>"+rs.getString("pubhouse")+"</td>";
temp+="<td>"+rs.getString("price")+"</td>";
if(f)
{
temp+="<td>"+rs.getString("salenum")+"</td>";
temp+="<td><a href='updatebook.jsp?updateid="+id+"'>修改</a></td>";
temp+="<td><a href='dealdeletebook.jsp?delid="+id+"'>删除</a></td>";
}
else
temp+="<td><a href='dealcart.jsp?dealid="+id+"&act=add'>加入购物车</a></td>";
temp+="</tr>";
}
catch(SQLException e){}
return temp;
}
//显示页号为p的一页(order)
public String orderPage(ResultSet rs, int p, int size,boolean f)
{
str="";
//将访问游标定位到页号为p的页要显示的第一条记录的位置
try{
for(int k=0;k<(p-1)*size;k++)
rs.next();
}
catch(SQLException e){}
for(int iPage=1; iPage<=size; iPage++){
str+= orderRow(rs,iPage,p,f);
try{
if(!rs.next()) break;
}
catch(Exception e){}
}
return str;
}
//显示单行记录(order)
public String orderRow( ResultSet rs,int i,int p,boolean f)
{
String temp="";
try{
String orderid=rs.getString("orderid");
temp+="<tr align='center'>";
temp+="<td><a href='detailorder.jsp?detailid="+orderid+"'>"+orderid+"</a></td>";
temp+="<td>"+(rs.getString("orderdate")).substring(0,10)+"</td>";
temp+="<td>"+rs.getString("orderstate")+"</td>";
if(f)
{
temp+="<td><a href='javaScript:seeUser("+rs.getString("userid")+")'>"+rs.getString("username")+"</a></td>";
temp+="<td><a href='dealdeleteorder.jsp?delid="+orderid+"'>删除</a></td>";
}
temp+="</tr>";
}
catch(SQLException e){}
return temp;
}
}
七、系统评价及心得体会
1、了解很多关于网上购书程序上的知识,要写这个课程设计,我把有关网上购书的概论也看了下,发现不知道是这个设计太简单还是怎么回事,网上出现很多此样的版本,很有有更新,可能我们对数据库设计的程序还不是很了解吧。
2,要写数据库E-R图,发现很难画啊,还要把线段连来连去,觉得在画图上面花了很多时间
3,一定要先了解数据情况,要先熟悉了网上购书的基本操作,在开始研究,最好自己去试一下网上购书,我就自己亲自去点击了下网上购书网,然后才下手写的课程设计。
急!求个数据库课程的设计!!
《数据库原理及应用》课程设计
数据库原理课程设计任务书
一、目的
1.掌握计算机管理信息系统设计的一般方法,主要包括系统分析、系统设计的组织和实施。
2.关系型数据库管理系统的编程技术,并能独立完成一般小系统的程序设计、调试运行等工作。
3.培养把所学知识运用到具体对象,并能求出解决方案的能力。
二、任务(任选其一)
A.运用关系型数据库管理系统,实现本院图书馆管理信息系统。具体要求如下:
—图书、资料的登记、注销和查询。
—借书证管理,包括申请、注销借书证,查询借书证持有人等。
—借还图书、资料的登记、超期处理,超期拒借等。
—图书、资料查询,借、还图书和资料情况查询。
—图书、资料借阅情况的统计分析,拒此作为图书馆图书、资料订够的依据之一。(本项不作为基本要求)
B.运用关系型数据库管理系统,实现服务电话管理系统
向客户现场派技术人员的服务公司可以用服务电话管理系统跟踪客户、员工、工作订单、发票、付款等等。
要求:
数据库要存储以下信息:
—客户信息
—客户工需单信息
—完成工需单所需人工
—完成工需单所需部件
—部件信息
—付款信息
—雇员信息
完成的功能:
—输入/查看客户工需单信息
—输入/查看部件、雇员等其它信息
—付款
—打印发票等
三、结果形式
1.设计报告:含E-R图、数据字典、关系模式、关系实例、查询描述、关系代数、SQL实现的查询语言及查询结果。
2.上机实现。
四、考核
1.课程设计态度(20分)。
2.递交的书面材料(40分)。
3.上机运行情况(40分)
目录
1.问题描述 2
1.1背景 2
1.2数据需求 2
1.3事物需求 3
1.4关系模式 3
2.方案图表设计 3
2.1 E-R图 3
2.2数据流程图 8
2.3数据字典 9
2.4关系图: 11
3.数据库源代码 12
3.1数据库建立 12
3.2数据初始化 14
4.结果数据处理 17
4.1单表查询 17
4.2超期处理 19
4.3还书操作 20
4.4借书操作 22
4.5书籍状态 24
4.6读者状态 24
5.结束语 26
5.1课程设计心得 26
1.问题描述
1.1背景
随着图书馆规模的不断扩大,图书数量也相应的增加,有关图书的各种信息量也成倍增加,面对着庞大的信息量,传统的人工方式管理会导致图书馆管理上的混乱,人力与物力过多浪费,图书馆管理费用的增加,从而使图书馆的负担过重,影响整个图书馆的运作和控制管理,因此,必须制定一套合理、有效,规范和实用的图书管理系统,对图书资料进行集中统一的管理。
另一方面,IT产业和Internet获得了飞速发展,计算机应用已渗透到了各个领域,引起信息管理的革命,实现了信息的自动化处理,提高了处理的及时性和正确性。
提高图书管理工作效率,作到信息的规范管理,科学统计和快速查询,让图书馆更好的为学校,社会服务。
1.2数据需求
图书馆管理信息系统需要完成功能主要有:
1.读者基本信息的输入,包括借书证编号、读者姓名、读者性别。
2.读者基本信息的查询、修改,包括读者借书证编号、读者姓名、读者性别等。
3.书籍类别标准的制定、类别信息的输入,包括类别编号、类别名称。
4.书籍类别信息的查询、修改,包括类别编号、类别名称。
5.书籍库存信息的输入,包括书籍编号、书籍名称、书籍类别、作者姓名、出版社名称、出版日期、登记日期。
6.书籍库存信息的查询,修改,包括书籍编号、书籍名称、书籍类别、作者姓名、出版社名称、出版日期登记日期等。
7.借书信息的输入,包括读者借书证编号、书籍编号、借书日期。
8.借书信息的查询、修改,包括借书证编号、读者编号、读者姓名、书籍编号、书籍名称、借书日期等。
9.还书信息的输入,包括借书证编号、书籍编号、还书日期。
10.还书信息的查询和修改,包括还书读者借书证编号、读者姓名、书籍编号、书籍名称、借书日期、还书日期等。
11.超期还书罚款输入,还书超出期限包括超出期限还书的读者借书证号,书籍编号,罚款金额。
12.超期还书罚款查询,删除,包括读者借书证编号、读者姓名、书籍编号、书籍名称,罚款金额等
1.3事物需求
(1)在读者信息管理部分,要求:
a.可以查询读者信息。
b.可以对读者信息进行添加及删除的操作。
(2)在书籍信息管理部分,要求:
a.可以浏览书籍信息,要求:
b.可以对书籍信息进行维护,包括添加及删除的操作。
(3)在借阅信息管理部分,要求:。
a.可以浏览借阅信息。
b.可以对借阅信息进行维护操作。
(4)在归还信息管理部分,要求:
a.可以浏览归还信息
b.对归还信息可修改维护操作
(5)在管理者信息管理部分,要求:
a.显示当前数据库中管理者情况。
b.对管理者信息维护操作。
(6)在罚款信息管理部分,要求:
a.可以浏览罚款信息
b.对罚款信息可以更新
1.4关系模式
(一)书籍类别(种类编号,种类名称)
(二)读者(借书证编号,读者姓名,读者性别,读者种类,登记时期)
(三)书籍(书籍编号,书籍名称,书籍类别,书记作者,出版社名称,出版日期,登记日期)
(四)借阅(借书证编号,书籍编号,读者借书时间)
(五)还书(借书证编号,书籍编号,读者还书时间)
(六)罚款(借书证编号,读者姓名,借书证编号,书籍编号,读者借书时间)
以上通过关系代数方法的进行运算得到所需要的结果,在实验结果中可以看到。
2.方案图表设计
2.1 E-R图
根据1)所要实现的功能设计,可能建立它们之间的关系,进而实现逻辑结构功能。
图书管理信息系统可以划分的实体有:书籍类别信息实体、读者信息实体、书籍信息实体、借阅记录信息实体,归还记录信息实体。用E-R图一一描述这些实体。
2.1.1类别实体E-R图:
图2-1类别实体E-R图
2.1.2读者信息实体E-R图:
图2-2读者信息实体E-R图
2.1.3信息实体E-R图:
图2-3信息实体E-R图
2.1.4.记录信息实体E-R图:
图2-4记录信息实体E-R图
2.1.5记录信息实体E-R图:
图2-5记录信息实体E-R图
2.1.6罚款信息实体E-R图:
图2-6罚款信息实体E-R图
2.1.6总的信息实体E-R图:
图2-7总的信息实体E-R图
2.2数据流程图
D5
归还信息录入基本信息录入
D2
D1
基本信息录入基本信息录入
D3
D4
借阅信息录入
读者信息返回书籍信息返回
图2-7系统的数据流程图
2.3数据字典
表2-1 book_sytle书籍类别信息表
表中列名数据类型可否为空说明
bookstyleno varchar not null(主键)种类编号
bookstyle Varchar not null种类名称
表2-2 system_readers读者信息表格
表中列名数据类型可否为空说明
readerid varchar not null(主键)读者借书证号
readername varchar not null读者姓名
readersex varchar not null读者性别
readertype varchar null读者种类
regdate datetime null登记日期
表2-3 system_book书籍信息表
表中列名数据类型可否为空说明
bookid Varchar Not null(主键)书籍编号
bookname Varchar Not null书籍名称
bookstyle Varchar Not null书籍类别
bookauthor Varchar Not null书籍作者
bookpub Varchar Null出版社名称
bookpubdate Datetime Null出版日期
bookindate Datetime Null登记日期
isborrowed Varchar Not Null是否被借出
表2-4 borrow_record借阅记录信息表
表中列名数据类型可否为空说明
readerid Varchar Not null(外主键)读者借阅证编号
bookid Varchar Not null(外主键)书籍编号
borrowdate Varchar Not null读者借书时间
表2-5 return_record借阅记录信息表
表中列名数据类型可否为空说明
readername Varchar Not null(外主键)读者借阅证编号
readerid Varchar Not null(外主键)书籍编号
returndate datetime Not null读者还书时间
表2-6 reader_fee罚款记录信息表
readerid varchar Not null读者借书证编号
readername varchar Not null读者姓名
bookid varchar Not null(外主键)书籍编号
bookname varchar Not null书籍名称
bookfee varchar Not Null罚款金额
borrowdate datetime Not Null借阅时间
2.4关系图:
图2-8数据库存表关系图
3.数据库源代码
3.1数据库建立
3.1.1创建数据库
USE master
GO
CREATE DATABASE librarysystem
ON
( NAME= librarysystem,
FILENAME='d:\librarysystem.mdf',
SIZE= 10,
MAXSIZE= 50,
FILEGROWTH= 5)
LOG ON
( NAME='library',
FILENAME='d:\librarysystem.ldf',
SIZE= 5MB,
MAXSIZE= 25MB,
FILEGROWTH= 5MB)
GO
3.1.2书本类别表建立
create table book_style
(
bookstyleno varchar(30) primary key,
bookstyle varchar(30)
)
3.1.3创建书库表
create table system_books
(
bookid varchar(20) primary key,
bookname varchar(30) Not null,
bookstyleno varchar(30) Not null,
bookauthor varchar(30),
bookpub varchar(30),
bookpubdate datetime,
bookindate datetime,
isborrowed varchar(2),
foreign key(bookstyleno) references book_style(bookstyleno),
)
3.1.4借书证表建立
create table system_readers
( readerid varchar(9)primary key,
readername varchar(9)not null,
readersex varchar(2) not null,
readertype varchar(10),
regdate datetime
)
3.1.5借书记录表建立
create table borrow_record
( bookid varchar(20) primary key,
readerid varchar(9),
borrowdate datetime,
foreign key(bookid) references system_books(bookid),
foreign key(readerid) references system_readers(readerid),
)
3.1.6还书记录表建立
create table return_record
( bookid varchar(20) primary key,
readerid varchar(9),
returndate datetime,
foreign key(bookid) references system_books(bookid),
foreign key(readerid) references system_readers(readerid)
)
3.1.7罚款单表建立*/
create table reader_fee
( readerid varchar(9)not null,
readername varchar(9)not null,
bookid varchar(20) primary key,
bookname varchar(30) Not null,
bookfee varchar(30),
borrowdate datetime,
foreign key(bookid) references system_books(bookid),
foreign key(readerid) references system_readers(readerid)
)
3.2数据初始化
3.2.1将书籍类别加入表book_style中
insert into book_style(bookstyleno,bookstyle)values('1','人文艺术类')
insert into book_style(bookstyleno,bookstyle)values('2','自然科学类')
insert into book_style(bookstyleno,bookstyle)values('3','社会科学类')
insert into book_style(bookstyleno,bookstyle)values('4','图片艺术类')
insert into book_style(bookstyleno,bookstyle)values('5','政治经济类')
insert into book_style(bookstyleno,bookstyle)values('6','工程技术类')
insert into book_style(bookstyleno,bookstyle)values('7','语言技能类')
3.2.2将已有的图书加入system_books表中(定义相同的作者出版社的书本编号不一样)
insert
into system_books(bookid,bookname, bookstyleno,bookauthor,bookpub,bookpubdate, bookindate, isborrowed)
values('00125415152','计算机组成原理','6','王爱英','清华大学出版社','2001-01-03','2003-11-15','1');
insert
into system_books(bookid,bookname, bookstyleno,bookauthor,bookpub,bookpubdate, bookindate, isborrowed)
values('00125415153','计算机组成原理','6','王爱英','清华大学出版社','2001-01-03','2003-11-15','1');
insert
into system_books(bookid,bookname, bookstyleno,bookauthor,bookpub, bookpubdate,bookindate, isborrowed)
values('00456456','数据库原理','6','萨师煊','高等教育出版社','2007-07-02','2007-09-15','1');
insert
into system_books(bookid,bookname, bookstyleno,bookauthor,bookpub,bookpubdate, bookindate, isborrowed)
values('12215121','C程序设计','6','谭浩强','清华大学出版社','2002-04-02','2004-03-14','1');
insert
into system_books(bookid,bookname, bookstyleno,bookauthor,bookpub, bookpubdate,bookindate, isborrowed)
values('9787308020558','计算机体系结构','6','石教英','浙江大学出版社','2004-10-03','2006-11-15','1');
insert
into system_books(bookid,bookname, bookstyleno,bookauthor,bookpub, bookpubdate,bookindate, isborrowed)
values('45456141414','数据结构(C语言版)','6','吴伟民,严蔚敏','清华大学出版社','2002-06-28','2004-01-21','1');
insert
into system_books(bookid,bookname, bookstyleno,bookauthor,bookpub, bookpubdate,bookindate, isborrowed)
values('5455515','中华历史5000年','1','吴强','北京大学出版社','2005-04-03','2006-05-15','1');
insert
into system_books(bookid,bookname, bookstyleno,bookauthor,bookpub, bookpubdate,bookindate, isborrowed)
values('015115','古代埃及','3','赵文华','北京大学出版社','2001-02-02','2002-09-15','1');
insert
into system_books(bookid,bookname, bookstyleno,bookauthor,bookpub, bookpubdate,bookindate, isborrowed)
values('1514514','日本文化','1','吴小鹏','北京大学出版社','2002-04-02','2004-03-14','1');
insert
into system_books(bookid,bookname, bookstyleno,bookauthor,bookpub, bookpubdate,bookindate, isborrowed)
values('15154656','微观经济学','5','李小刚','北京大学出版社','2000-10-03','2001-11-15','1');
insert
into system_books(bookid,bookname, bookstyleno,bookauthor,bookpub, bookpubdate,bookindate, isborrowed)
values('5658','影视文学','4','苏庆东','北京大学出版社','1999-02-28','2000-01-21','1');
insert into
system_books(bookid,bookname, bookstyleno,bookauthor,bookpub, bookpubdate,bookindate, isborrowed)
values('565800020','探索宇宙奥秘','2','苏庆东','北京大学出版社','1999-02-28','2000-01-21','1');
3.2.3将已有图书证的读者加入system_readers表中*/
insert into system_readers(readerid,readername,readersex,readertype,regdate)
values('X05620207','陈远鹏','男','学生','2005-9-23 14:23:56')
insert into system_readers(readerid,readername,readersex,readertype,regdate)
values('X05620206','陈特','男','学生','2005-09-30 13:24:54.623')
insert into system_readers(readerid,readername,readersex,readertype,regdate)
values('X05620204','赵铭静','女','学生','2005-09-27 11:24:54.123')
insert into system_readers(readerid,readername,readersex,readertype,regdate)
values('X05620202','潘虹','女','学生','2005-09-30 13:24:54.473')
insert into system_readers(readerid,readername,readersex,readertype,regdate)
values('008415','蒋伟','男','教师','2004-04-30 09:24:54.478')
insert into system_readers(readerid,readername,readersex,readertype,regdate)
values('001456','李叶风','女','教师','2004-04-30 09:24:54.478')
3.2.4添加已借书读者的记录,同时将在已借出的借阅标记置0*/
insert into borrow_record(bookid,readerid,borrowdate)
values('00125415152','X05620202','2007-09-27 11:24:54.123')
update system_books
set isborrowed=0
where bookid='00125415152'
insert into borrow_record(bookid,readerid,borrowdate)
values('00125415153','X05620206','2007-12-27 08:26:51.452')
update system_books
set isborrowed=0
where bookid='00125415153' and isborrowed='1'
insert into borrow_record(bookid,readerid,borrowdate)
values('5455515','X05620207','2007-12-27 08:26:51.452')
update system_books
set isborrowed=0
where bookid='5455515' and isborrowed='1'
insert into borrow_record(bookid,readerid,borrowdate)
values('015115','X05620204','2007-10-21 12:11:51.452')
update system_books
set isborrowed=0
where bookid='015115' and isborrowed='1'
insert into borrow_record(bookid,readerid,borrowdate)
values('15154656','001456','2007-12-28 14:11:51.312')
update system_books
set isborrowed=0
where bookid='15154656' and isborrowed='1'
insert into borrow_record(bookid,readerid,borrowdate)
values('565800020','008415','2007-08-28 15:11:31.512')
update system_books
set isborrowed=0
where bookid='565800020' and isborrowed='1'
4.结果数据处理
4.1单表查询
4.1.1表book_style中查询演示:
图4-1表book_style中内容
4.1.2表system_books中查询演示:
图4-2表system_books中内容
4.1.3将已有图书证的读者加入system_readers表中结果查询:
图4-3表system_readers中内容
4.1.4借书纪录表borrow_record结果查询:
图4-4表borrow_record中内容
4.2超期处理
4.2.1现在对已有借书证的读者进行查询借书是否超期(这里归定30天):
说明:当前的getdate()以日期为2008年1月6日计算
图4-4选出借出超过30天的读者
4.2.2同时也可以用语句超过天数的读者进行罚款,加入到罚款单里面,一天以0.3元扣除计算:
SQL语言:
insert into reader_fee(readerid,readername,bookid,bookname,bookfee,borrowdate)
select system_readers.readerid读者借书证编号,readername读者姓名,
system_books.bookid书籍编号,bookname书名,
0.3*(Datediff(day,convert(smalldatetime,borrowdate),getdate())-30)超过时间天数,
borrowdate借书时间
from borrow_record,system_readers,system_books
where system_readers.readerid=borrow_record.readerid
and system_books.bookid=borrow_record.bookid
and Datediff(day,convert(smalldatetime,borrowdate),getdate())>=30
(所影响的行数为 3行)
select readerid书读者借书证编号,readername读者姓名,
bookid书籍编号,bookfee超期罚款
from reader_fee
形成各本书对应的罚款金额,按0.3元每天算
图4-5查看罚款单
4.3还书操作
4.3.1现在对某一读者进行还书操作:
1.首先还书要在还书纪录中添加一条还书纪录
2.其次删除相应书本的借阅纪录
3.最后在书库中标记该本书为1,表示归还了未借,可供其他读者借阅
说明:学号为X05620207姓名为陈远鹏借阅的565800020书籍编号进行归还。
SQL语言:
insert into return_record(bookid,readerid,returndate)
select bookid,readerid,getdate()
from borrow_record
where bookid='565800020'
(所影响的行数为 1行)
delete
from borrow_record
where bookid='565800020'
(所影响的行数为 1行)
update system_books
set isborrowed=1
where bookid='565800020'
(所影响的行数为 1行)
三个表的结果如图:
图4-6增加了565800020纪录
图4-7 565800020这本书在借书纪录里没有了
图4-8标记设为了‘1’
说明:这本书重新回到未被借出标记为1(注,相同的书其编号是不同的)
其结果为还书成功,相应的各表都有变化,对于罚款单通过借阅记录表borrow_record中更新。
4.4借书操作
4.4.1查询未被借出的书本:
图4-9
4.4.2查询已被借出的书本:
图4-10
4.4.3申请借书证:
SQL语言:
Insert into system_readers(readerid,readername,readersex,readertype,regdate)
values('X05620211','小华','男','学生',getdate())
图4-11
说明:查询相应的纪录增加了小华这样一个读者的借书证纪录:
4.4.4注销借书证:
说明:
1.在注销之前执行所有的还书过程,就是上面写到的所述SQL语句,然后执行
delete from system_readers where readerid=' X05620211',
2.小华借书证纪录就被删除了,同时要删除和小华归还纪录的内容
delete from return_record where readerid=' X05620211',
4.4.5查询所有书所对应的类别:
图4-12
4.5书籍状态
4.5.1查询所有工技术类的书:
图4-13
4.5.2查询清华大学出版社出版的书:
图4-14
4.6读者状态
4.6.1查询什么人借了什么书:
SQL语言:
select readername读者姓名,bookname书籍名称
from borrow_record,system_books,system_readers
where system_readers.readerid=borrow_record.readerid
and system_books.bookid=borrow_record.bookid
图4-15
4.6.2指定潘虹借了什么书:
SQL语言:
select readername读者姓名,bookname书籍名称
from borrow_record,system_books,system_readers
where system_readers.readerid=borrow_record.readerid
and system_books.bookid=borrow_record.bookid
and readername='潘虹'
图4-16
5.结束语
5.1课程设计心得
通过此次数据库的课程设计,真正达到了学与用的结合,增强了对数据库方面应用的理解,对自己今后参与开发数据库系统积累了不少经验,在实验过程中,从建立数据开始,对灵据库设计理念及思想上有更高的认识,从需求分析,到概念设计和逻辑设计,E-R图的表示,数据字典的创建,懂得了不少有关数据库开发过程中的知识,在实验中建表,及其关系模式,关系代数的建立及理解,将SQL语的查询语句用得淋漓尽致,增强了自己在数据库中应用SQL语言的灵活性,其中包括,插入、删除、修改、查询,牵涉表和表之间的联系,主建与外主键的定义,约束项的设置,使逻辑更严密,在学习过程中,我也能过上网查了不少资料,也看了一些别人设计的图书馆管理信息系统的设计报告,学以致用,自我创新,独立完成了这份自己的报告,从中在学到用,从用又到学,不断修改,系统更新。虽然不能达到完善系统,但也做到了尽善尽美,加强理论学习对完善系统会有很多帮助,不管怎么说,对这次做的课程设计自己觉得还算满意。
数据库课程设计实例
数据库课程设计
题目:小型超市管理系统
1、项目计划
1.1系统开发目的
(1)大大提高超市的运作效率;
(2)通过全面的信息采集和处理,辅助提高超市的决策水平;
(3)使用本系统,可以迅速提升超市的管理水平,为降低经营成本,提高效益,增强超市扩张力,提供有效的技术保障。
1.2背景说明
21世纪,超市的竞争也进入到了一个全新的领域,竞争已不再是规模的竞争,而是技术的竞争、管理的竞争、人才的竞争。技术的提升和管理的升级是超市业的竞争核心。零售领域目前呈多元发展趋势,多种业态:超市、仓储店、便利店、特许加盟店、专卖店、货仓等相互并存。如何在激烈的竞争中扩大销售额、降低经营成本、扩大经营规模,成为超市营业者努力追求的目标。
1.3项目确立
针对超市的特点,为了帮助超市解决现在面临的问题,提高小型超市的竞争力,我们将开发以下系统:前台POS销售系统、后台管理系统,其中这两个子系统又包含其它一些子功能。
1.4应用范围
本系统适应于各种小型的超市。
1.5定义
(1)商品条形码:每种商品具有唯一的条形码,对于某些价格一样的商品,可以使用自定义条形码。
(2)交易清单:包括交易的流水账号、每类商品的商品名、数量、该类商品的总金额、交易的时间、负责本次收银的员工号。
(3)商品积压:在一定时期内,远无法完成销售计划的商品会造成积压。
(4)促销:在一定时期内,某些商品会按低于原价的促销价格销售。
库存告警提示:当商品的库存数量低于库存报警数量时发出提示。
(5)盘点:计算出库存、销售额、盈利等经营指标。
1.6参考资料
《数据库原理及设计》陶宏才编清华大学出版社
《SQL Server 2000实用教程》范立南编清华大学出版社
《SQL Server 2000编程员指南》李香敏编北京希望电子出版社
《轻松搞定 SQL Server 2000程序设计》Rebecca M.Riordan编
《软件工程规范》Watts S.Humphrey编清华大学出版社
《软件工程理论与实践》 Shari Lawrence Pfleeger编清华大学出版社
《软件需求分析》 Swapna Kishore编机械工业出版社
《软件工程思想》林锐编
2、逻辑分析与详细分析
2.1系统功能
(1)、零售前台(POS)管理系统,本系统必须具有以下功能:
商品录入:根据超巿业务特点制定相关功能,可以通过输入唯一编号、扫描条形码、商品名称等来实现精确或模糊的商品扫描录入。该扫描录入方法可以充分保证各种电脑操作水平层次的人员均能准确快速地进行商品扫描录入。
收银业务:通过扫描条形码或者直接输入商品名称(对于同类多件商品采用一次录入加数量的方式)自动计算本次交易的总金额。在顾客付款后,自动计算找零,同时打印交易清单(包括交易的流水账号、每类商品的商品名、数量、该类商品的总金额、交易的时间、负责本次收银的员工号)。如果顾客是本店会员并持有本人会员卡,则在交易前先扫描会员卡,并对所购物品全部实行95折优惠,并将所购物品的总金额累计到该会员的总消费金额中。会员卡的有效期限为一年,满一年未续卡者,该会员卡将被注销。
安全性:OS登陆、退出、换班与操作锁定等权限验证保护;断电自动保护最大限度防止意外及恶意非法操作。
独立作业:有的断网收银即在网络服务器断开或网络不通的情况下,收银机仍能正常作业
(2)、后台管理系统,本系统必须具备以下功能
进货管理:根据销售情况及库存情况,自动制定进货计划(亦可手工制定修改),可以避免盲目进货造成商品积压。按计划单有选择性地进行自动入库登记。综合查询打印计划进货与入库记录及金额。
销售管理:商品正常销售、促销与限量、限期及禁止销售控制。综合查询各种销售明细记录、各地收银员收银记录以及交结账情况等。按多种方式统计生成销售排行榜,灵活察看和打印商品销售日、月、年报表。
库存管理:综合查询库存明细记录。库存状态自动告警提示。如库存过剩、少货、缺货等。软件为您预警,避免库存商品积压损失和缺货。库存自动盘点计算。
人员管理:员工、会员、供货商、厂商等基本信息登记管理。员工操作权限管理。客户销售权限管理。
(3)系统结构
系统总体结构
模块子系统结构
功能商品录入子系统要求能快速录入商品,因此必须支持条形码扫描。
功能收银业务子系统能计算交易总额,打印交易清单,并根据会员卡打折。
功能进货管理子系统可以根据库存自动指定进货计划,进货时自动等级,以及提供查询和打印计划进货与入库记录的功能。
功能销售管理子系统可以控制某商品是否允许销售,查询每种商品的销售情况并产生年、月、日报表,同时可以生成销售排行榜。
功能库存管理子系统提供查询库存明细记录的基本功能,并根据库存的状态报警,以及自动盘点计算。
功能人员管理子系统提供基本信息登记管理,员工操作权限管理,客户销售权限管理的功能。
2.2、流程图
前台管理系统
顶层DFD图
第0层DFD图
第1层DFD图
2.3、户类型与职能
(1)、员工(营业员):
通过商品条形码扫描输入商品到购买清单
操作软件计算交易总金额
操作软件输出交易清单
对会员进行会员卡扫描以便打折
(2)、:超市经理
操作软件录入商品,供货商,厂商
操作软件制定进货计划
查询打印计划进货与入库记录
操作软件控制商品销售与否
查询打印销售情况
操作软件生成销售排行榜
查询库存明细记录
根据软件发出的库存告警进行入货
操作软件进行盘点计算
(3)、总经理:
基本信息登记管理
员工操作权限管理
客户销售权限管理
2.4、统开发步骤
确定参与者和相关的用况
为每个用况设计过程
建立顺序图,确定每个脚本中对象的协作
创建类,确定脚本中的对象
设计,编码,测试,集成类
为过程编写系统测试案例
运行测试案例,检验系统
2.5、系统环境需求
系统模式
本系统采用C/S模式作为开发模式
硬件环境
服务器端:
高性能的计算机一台,
普通的双绞线作为连接。
客户端:普通的计算机或者工作站,
普通的双绞线作为连接。
软件环境
服务器端:安装SQL Server 2000的服务器版本,
安装windows 2000服务器版本,
配置了诺顿等必须的防毒软件。
客户端:安装SQL Server2000的服务器版本,
安装了VB等可视化开发工具软件,
安装windows2000服务器版本。
2.6、系统安全问题
信息系统尽管功能强大,技术先进,但由于受到自身体系结构,设计思路以及运行机制等限制,也隐含许多不安全因素。常见因素有:数据的输入,输出,存取与备份,源程序以及应用软件,数据库,操作系统等漏洞或缺陷,硬件,通信部分的漏洞,企业内部人员的因素,病毒,“黑客”等因素。因此,为使本系统能够真正安全,可靠,稳定地工作,必须考虑如下问题:为保证安全,不致使系统遭到意外事故的损害,系统因该能防止火,盗或其他形式的人为破坏。
系统要能重建
系统应该是可审查的
系统应能进行有效控制,抗干扰能力强
系统使用者的使用权限是可识别的
3、基于UML的建模
3.1语义规则
用例模型(use cases view)(用例视图)的基本组成部件是用例(use case)、角色(actor)和系统(system)。用例用于描述系统的功能,也就是从外部用户的角度观察,系统应支持哪些功能,帮助分析人员理解系统的行为,它是对系统功能的宏观描述,一个完整的系统中通常包含若干个用例,每个用例具体说明应完成的功能,代表系统的所有基本功能(集)。角色是与系统进行交互的外部实体,它可以是系统用户,也可以是其它系统或硬件设备,总之,凡是需要与系统交互的任何东西都可以称作角色。系统的边界线以内的区域(即用例的活动区域)则抽象表示系统能够实现的所有基本功能。在一个基本功能(集)已经实现的系统中,系统运转的大致过程是:外部角色先初始化用例,然后用例执行其所代表的功能,执行完后用例便给角色返回一些值,这个值可以是角色需要的来自系统中的任何东西。
UML:是一种标准的图形化建模语言,它是面向对象分析与设计的一种标准表示;它不是一种可视化的程序设计语言而是一种可视化的建模语言;不是工具或知识库的规格说明而是一种建模语言规格说明是一种表示的标准;不是过程也不是方法但允许任何一种过程和方法使用它。
用例(use case):
参与者(actor):
3.2、UML模型
3.21、系统UML模型
3.22、子系统UML模型
(1)零售前台(POS)管理系统用例视图
(2)后台管理系统用例视图
3.3、系统实现图
4、超市销售系统概念设计文档
(1)、系统ER图
(2)、系统ER图说明
1)商店中的所有用户(员工)可以销售多种商品,每种商品可由不同用户(员工)销售;
2)每个顾客可以购买多种商品,不同商品可由不同顾客购买;
3)每个供货商可以供应多种不同商品,每种商品可由多个供应商供应。
(3)、视图设计
1)交易视图(v_Dealing)——用于查询交易情况的视图;
2)计划进货视图(v_PlanStock)——用于查询进货计划的视图;
3)销售视图(v_Sale)——用于查询销售明细记录的视图;
4)入库视图(v_Stock)——用于查询入库情况的视图。
5、逻辑设计文档
(1)、系统关系模型
a)商品信息表(商品编号,商品名称,价格,条形码,促销价格,促销起日期,促销止日期,允许打折,库存数量,库存报警数量,计划进货数,允许销售,厂商编号,供货商编号)
b)用户表(用户编号,用户名称,用户密码,用户类型)
c)会员表(会员编号,会员卡号,累积消费金额,注册日期)
d)销售表(销售编号,商品编号,销售数量,销售金额,销售日期)
e)交易表(交易编号,用户名称,交易金额,会员卡号,交易日期)
f)进货入库表(入库编号,入库商品编号,入库数量,单额,总额,入库日期,计划进货日期,入库状态)
g)供货商表(供货商编号,供货商名称,供货商地址,供货商电话)
h)厂商表(厂商编号,厂商名称,厂商地址,厂商电话)
(2)、系统数据库表结构
数据库表索引
表名中文名
MerchInfo商品信息表
User用户表
Menber会员表
Sale销售表
Dealing交易表
Stock进货入库表
Provide供货商表
Factory厂商表
商品信息表(MerchInfo)
字段名字段类型长度主/外键字段值约束对应中文名
MerchID int 4 P Not null商品编号
MerchName Varchar 50 Not null商品名称
MerchPrice Money 4 Not null价格
MerchNum Int 4 Not null库存数量
CautionNum Int 4 Not null库存报警数量
PlanNum Int 4 null计划进货数
BarCode Varchar 50 Not null条形码
SalesProPrice Money 4促销价格
SalesProDateS Datetime 8促销起日期
SalesProDateE Datetime 8促销止日期
AllowAbate Int 4 Not null允许打折
AllowSale Int 4 Not null允许销售
FactoryID Varchar 10 F Not null厂商编号
ProvideID Varchar 10 F Not null供货商编号
用户表(User)
字段名字段类型长度主/外键字段值约束对应中文名
UserID varchar 10 P Not null用户编号
UserName Varchar 25 Not null用户名称
UserPW Varchar 50 Not null用户密码
UserStyle Int 4 Not null用户类型
会员表(Menber)
字段名字段类型长度主/外键字段值约束对应中文名
MemberID Varchar 10 P Not null会员编号
MemberCard Varchar 20 Not null会员卡号
TotalCost Money 4 Not null累积消费金额
RegDate Datetime 8 Not null注册日期
销售表(Sale)
字段名字段类型长度主/外键字段值约束对应中文名
SaleID Varchar 10 P Not null销售编号
MerChID Varchar 10 F Not null商品编号
SaleDate Datetime 8 Not null销售日期
SaleNum Int 4 Not null销售数量
SalePrice Money 4 Not null销售单额
交易表(Dealing)
字段名字段类型长度主/外键字段值约束对应中文名
DealingID Varchar 10 P Not null交易编号
DealingPrice Money 4 Not null交易金额
DealingDate Money 4 Not null交易日期
MemberID Varchar 10会员卡号
UserName Varchar 10 F Not null用户名称
入库纪录表(Stock)
字段名字段类型长度主/外键字段值约束对应中文名
StockID Varchar 10 P Not null入库编号
MerchID Varchar 10 F Not null入库商品编号
MerchNum Int 4 Not null入库数量
MerchPrice Money 4 Not null单额
TotalPrice Money 4 Not null总额
StockDate Datetime 8 Datetime入库日期
PlanDate Datetime 8 Datetime计划进货日期
StockState Int 4 Not null入库状态
供货商表(Provide)
字段名字段类型长度主/外键字段值约束对应中文名
ProvideID varchar 10 P Not null供货商编号
ProvideName Varchar 50 Not null供货商名称
ProvideAddress Varchar 250供货商地址
ProvidePhone Varchar 25供货商电话
厂商表(Provide)
字段名字段类型长度主/外键字段值约束对应中文名
FactoryID varchar 10 P Not null厂商编号
FactoryName Varchar 50 Not null厂商名称
FactoryAddress Varchar 250厂商地址
FactoryPhone Varchar 25厂商电话
6、物理设计文档
/*----------创建数据库----------*/
create database SuperMarketdb
on primary
(
name=SuperMarketdb,
filename='C:\Program Files\Microsoft SQL Server\MSSQL\Data\SuperMarketdb.mdf',
size=100MB,
maxsize=200MB,
filegrowth=20MB
)
log on
(
name=SuperMarketlog,
filename='C:\Program Files\Microsoft SQL Server\MSSQL\Data\SuperMarketdb.ldf',
size=60MB,
maxsize=200MB,
filegrowth=20MB
)
go
/*----------创建基本表----------*/
use [SuperMarketdb]
go
/*创建交易表*/
CREATE TABLE Dealing(
DealingID int identity(1,1) Primary key,
DealingDate datetime NOT NULL,
DealingPrice money NOT NULL,
UserName varchar(25) NULL,
MemberCard varchar(20) NULL
)
GO
/*创建厂商表*/
CREATE TABLE Factory(
FactoryID varchar(10) Primary key,
FactoryName varchar(50) NOT NULL,
FactoryAddress varchar(250) NULL,
FactoryPhone varchar(50) NULL
)
GO
/*创建会员表*/
CREATE TABLE Member(
MemberID varchar(10) Primary key,
MemberCard varchar(20) NOT NULL,
TotalCost money NOT NULL,
RegDate datetime NOT NULL
)
GO
/*创建商品信息表*/
CREATE TABLE MerchInfo(
MerchID int identity(1,1) Primary key,
MerchName varchar(50) Unique NOT NULL,
MerchPrice money NOT NULL,
MerchNum int NOT NULL,
CautionNum int NOT NULL,
PlanNum int NOT NULL,
BarCode varchar(20) Unique NOT NULL,
SalesProPrice money NULL,
SalesProDateS datetime NULL,
SalesProDateE datetime NULL,
AllowAbate int NOT NULL,
AllowSale int NOT NULL,
FactoryID int NOT NULL,
ProvideID int NOT NULL
)
GO
/*创建供应商表*/
CREATE TABLE Provide(
ProvideID varchar(10) Primary key,
ProvideName varchar(50) NOT NULL,
ProvideAddress varchar(250) NULL,
ProvidePhone varchar(25) NULL
)
GO
/*创建销售表*/
CREATE TABLE Sale(
SaleID int identity(1,1) Primary key,
MerChID int NOT NULL,
SaleDate datetime NOT NULL,
SaleNum int NOT NULL,
SalePrice money NOT NULL
)
GO
/*创建入库表*/
CREATE TABLE Stock(
StockID int identity(1,1) Primary key,
MerchID int NOT NULL,
MerchNum int NOT NULL,
MerchPrice money NULL,
TotalPrice money NULL,
PlanDate datetime NULL,
StockDate datetime NULL,
StockState int NOT NULL
)
GO
/*创建用户表*/
CREATE TABLE User(
UserID varchar(10) Primary key,
UserName varchar(25) NOT NULL,
UserPW varchar(50) NOT NULL,
UserStyle int NOT NULL,
)
GO
/*----------创建表间约束----------*/
/*商品信息表中厂商编号、供应商编号分别与厂商表、供应商表之间的外键约束*/
ALTER TABLE MerchInfo ADD
CONSTRAINT [FK_MerchInfo_Factory] FOREIGN KEY
(
[FactoryID]
) REFERENCES Factory(
[FactoryID]
),
CONSTRAINT [FK_MerchInfo_Provide] FOREIGN KEY
(
[ProvideID]
) REFERENCES Provide(
[ProvideID]
)
GO
/*销售表中商品编号与商品信息表之间的外键约束*/
ALTER TABLE Sale ADD
CONSTRAINT [FK_Sale_MerchInfo] FOREIGN KEY
(
[MerChID]
) REFERENCES MerchInfo(
[MerchID]
) ON DELETE CASCADE
GO
/*入库表中商品编号与商品信息表之间的外键约束*/
ALTER TABLE Stock ADD
CONSTRAINT [FK_Stock_MerchInfo] FOREIGN KEY
(
[MerchID]
) REFERENCES MerchInfo(
[MerchID]
) ON DELETE CASCADE
GO
/*----------创建索引----------*/
/*在交易表上建立一个以交易编号、交易日期为索引项的非聚集索引*/
CREATE nonclustered INDEX IX_Dealing ON Dealing(DealingID, DealingDate)
GO
/*在商品信息表上建立一个以商品编号为索引项的非聚集索引*/
CREATE nonclustered INDEX IX_MerchInfo ON MerchInfo(MerchID)
GO
/*在销售表上建立一个以销售编号、销售日期为索引项的非聚集索引*/
CREATE nonclustered INDEX IX_Sale ON Sale(SaleID, SaleDate)
GO
/*在入库表上建立一个以入库编号、入库日期、商品编号为索引项的非聚集索引*/
CREATE nonclustered INDEX IX_Stock ON Stock(StockID, StockDate, MerchID)
GO
/*----------创建视图----------*/
/*创建用于查询交易情况的视图*/
CREATE VIEW v_Dealing
AS
SELECT DealingDate as交易日期,
UserName as员工名称,
MemberCard as会员卡号,
DealingPrice as交易金额
FROM Dealing
GO
/*创建用于查询进货计划的视图*/
CREATE VIEW v_PlanStock
AS
SELECT Stock.StockID as SID,
MerchInfo.MerchName as商品名称,
MerchInfo.BarCode as条形码,
Factory.FactoryName as厂商,
Provide.ProvideName as供货商,
Stock.MerchNum as计划进货数量,
Stock.PlanDate as计划进货日期
FROM Stock,MerchInfo,Provide,Factory
Where Stock.MerchID= MerchInfo.MerchID
and Provide.ProvideID=MerchInfo.ProvideID
and Factory.FactoryID=MerchInfo.FactoryID
and Stock.StockState=0
GO
/*创建用于查询销售明细记录的视图*/
CREATE VIEW v_Sale
AS
SELECT MerchInfo.MerchName as商品名称,
MerchInfo.BarCode as条形码,
MerchInfo.MerchPrice as商品价格,
Sale.SalePrice as销售价格,
Sale.SaleNum as销售数量,
Sale.SaleDate as销售日期
FROM Sale INNER JOIN
MerchInfo ON Sale.MerChID= MerchInfo.MerchID
GO
/*创建用于查询入库情况的视图*/
CREATE VIEW v_Stock
AS
SELECT MerchInfo.MerchName as商品名称,
MerchInfo.BarCode as条形码,
Factory.FactoryName as厂商,
Provide.ProvideName as供货商,
Stock.MerchPrice as入库价格,
Stock.MerchNum as入库数量,
Stock.TotalPrice as入库总额,
Stock.StockDate as入库日期
FROM Stock,MerchInfo,Provide,Factory
Where Stock.MerchID= MerchInfo.MerchID
and Provide.ProvideID=MerchInfo.ProvideID
and Factory.FactoryID=MerchInfo.FactoryID
and Stock.StockState=1
GO
7、小结
和传统管理模式相比较,使用本系统,毫无疑问会大大提高超市的运作效率,辅助提高超市的决策水平,管理水平,为降低经营成本,提高效益,减少差错,节省人力,减少顾客购物时间,增加客流量,提高顾客满意度,增强超市扩张能力,提供有效的技术保障。
由于开发者能力有限,加上时间仓促,本系统难免会出现一些不足之处,例如:
本系统只适合小型超市使用,不能适合中大型超市使用;
超市管理系统涉及范围宽,要解决的问题多,功能复杂,实现困难,但由于限于时间,本系统只能做出其中的一部分功能;
对于以上出现的问题,我们深表歉意,如发现还有其它问题,希望老师批评指正。
请采纳。
END,本文到此结束,如果可以帮助到大家,还望关注本站哦!