数据库课程设计报告网上购物系统.docx
《数据库课程设计报告网上购物系统.docx》由会员分享,可在线阅读,更多相关《数据库课程设计报告网上购物系统.docx(20页珍藏版)》请在冰点文库上搜索。
数据库课程设计报告网上购物系统
郑州轻工业学院本科
数据库课程设计总结报告
设计题目:
网上购物系统
学生姓名:
系别:
计算机与通信工程学院
专业:
计算机科学与技术
班级:
学号:
指导教师:
2012年12月30日
郑州轻工业学院
课程设计任务书
题目网上购物系统
专业、班级
学号姓名
学号姓名
主要内容:
系统数据初始化;用户基本信息录入与修改;商品信息的录入和修改;会员信息查询;商品信息查询,用户注销账号等。
基本要求:
为了更好的巩固和加强书本所学的知识,把所学的东西转化为实际应用。
我们学习了SQL语言,对数据库的创建、修改、删除方法有了一定的了解。
通过导入表和删除表、更改表学会了对于表的一些操作。
为了建立一个关系数据库信息管理系统,必须得经过系统调研、需求分析、概念设计、逻辑设计、物理设计、系统调试、维护以及系统评价的一般过程。
主要参考资料等:
《数据库系统概论》作者:
王珊萨师煊出版社:
高等教育出版社
《SQLServer2005中文版关系数据库基础与实践教程》作者:
周峰
出版社:
电子工业出版社。
《SQLServer数据库开发实例精粹》作者:
徐国智汪孝宜等
出版社:
电子工业出版社。
完成期限:
两周
指导教师签名:
课程负责人签名:
2012年12月30日
五、实习心得及工作分工18
一、需求分析
在线购物过程的实现与传统的购物方式不同。
首先,在线购物的整个过程都是通过网络进行的,购买者无法看到商家和商品,对商品信息的了解只能通过网络。
在线购物的一般流程是:
商家将新上架的商品信息通过系统管理功能发布到网上,然后购买者通过系统销售模块浏览商品详细信息,并且可以根据自己的需要搜索更具针对性的商品信息。
为了便于管理,购买者必须注册为网站的会员后才能选择购买特定的商品,并选择付款方式和邮递方式,并且可以在商品到达之后,检查商品的实际效用是否跟网上描述的相符,并进行相应的评论,以供其他购买者参考。
根据在线购物的逻辑过程,同时参考、分析目前市场上已有的在线购物网站,本系统的主要功能需求分为销售和系统管理两大模块。
其中销售模块的功能由购买者使用,可以进行各类商品信息的浏览,如果是注册会员那么可以选购商品到购物车并实现结算,如果没有检索到相应的产品也可以使用下达订单的功能。
系统管理功能由发布商品的商家使用,可以实现注册会员管理、商品信息管理、订单管理、动态新闻管理、当前有效在线调查信息管理等内容,同时可以处理用户下达的新订单。
1.1销售模块功能需求分析
系统销售模块主要让商品购买者使用,可以进行各类商品信息的浏览和订购功能,系统销售模块的功能需求如下:
1.会员注册:
提供浏览者注册功能,注册之后可以在网站选购商品到购物车,否则只能浏览商品信息而无法下达订单。
2.会员登录:
针对已注册的会员设置,每个访问者一次只能够登陆一个账户。
3.索回密码:
当已注册用户忘记密码时可根据用户名或邮箱、通过密码提示问题和答案索回密码。
4.商品信息检索与浏览:
网站的首页显示出了部分特价商品和新上架商品,同时列出了网站发布的所有商品类别导航树。
5.特价商品展示:
显示出降价幅度较大的商品信息。
6.根据商品订购信息展示销售排行榜:
根据购买者下订单的情况,展示出当前网站中最畅销的商品信息。
7.购物车功能:
已登录的会员选中的商品都将暂时存放在购物车中,可通过查看购物车修改购买数量。
8.新品上架:
根据数据库信息显示出最近三天或一周内上架的商品信息。
9.首页显示动态新闻:
在购物网站的首页按照时间录入先后顺序显示最近的新闻。
10.注销登录:
注册用户单击“注销”后实现安全退出。
1.2管理模块功能需求分析
系统管理模块的功能由发布商品的商家使用,可以进行注册会员、商品信息、订单、动态新闻、在线调查等内容的管理,系统管理模块的功能需求如下:
1.卖家可以对已发布商品管理:
管理商品信息,如管理商品简介、价格、(有新货的时候)更新库存数量。
3.订单管理:
对于销售模块中注册会员下达的订单审核、然后执行。
一条订单信息只能对应一个会员、却能对应多个商品。
4.卖家登录:
只有通过登录才能进入系统管理主页面,进而使用系统管理模块的所有功能。
8.发布新上架商品信息:
将新商品的详细信息录入数据库,供销售模块的使用者查看。
9.添加新会员信息管理:
管理员可手动添加会员信息,添加的会员同通过销售模块注册的会员具有相同的权限。
10.注销退出:
当用户点击“注销”后实现安全退出。
另外根据购物网站安全性的要求,同时也为了规范对网站销售模块、系统管理模块的管理,对以上两个模块的使用者(购物者和商家)作出如下规定:
1.对于购买者来说:
如果是非注册会员,那么就仅仅能够使用商品信息检索与浏览、特价商品展示、查看销售排行、新品上架和动态新闻浏览功能。
而在线购物、查看购物车、结算等功能都是针对已注册的会员。
2.针对商家管理员来说:
如果没有卖家登录账号和密码,那么就无法进入系统管理主页面,即使绕过系统管理登录页面而直接进入主页面,系统也会强制将其转向系统管理模块的登录页面。
二、数据库设计
2.1.概念结构设计E—R图
1.实体会员的E-R图
图1实体会员E-R图
图2实体商品E-R图
图3实体卖家E-R图
图4系统结构E-R图
2.2数据字典
会员表
表名member
字段名
数据类型
长度
主外键
字段说明
备注
m_no
varchar
15
主键
会员账号
非空
m_pwd
varchar
15
无
密码
非空
m_name
char
40
无
会员姓名
无
sex
char
2
无
性别
无
email
varchar
20
无
电子邮箱
非空
m_phone
char
15
无
会员电话
非空
商品表
表名goods
字段名
数据类型
长度
主外键
字段说明
备注
goods_no
varcahr
15
主键
商品号
非空
goods_name
varcahr
25
无
商品名
无
goods_style
varcahr
15
无
商品种类
无
goods_price
float
无
单价
无
goods_inventory
char
10
无
库存量
无
description
varcahr
300
无
商品描述
无
Activity_state
varcahr
20
无
活动状态
无
卖家表
表名seller
字段名
数据类型
长度
主外键
字段说明
备注
s_no
varchar
15
主键
卖家号
非空
s_pwd
varchar
15
无
密码
无
s_name
char
40
无
卖家名
无
sex
char
2
无
性别
无
s_address
varchar
60
无
卖家地址
无
s_phone
char
15
无
卖家电话
无
购买表
表名buy
字段名
数据类型
长度
主外键
字段说明
备注
order_no
varchar
15
主键
订单号
非空
m_no
varcahr
15
外键
会员号
非空
goods_no
varcahr
15
外键
商品号
非空
buy_price
float
无
购买单价
非空
order_num
smallint
无
购买数量
非空
pay_way
varcahr
10
无
付费方式
非空
sen_way
varcahr
10
无
送货方式
非空
receiver_name
varcahr
40
无
收货人姓名
非空
receiver_phone
char
15
无
收货人电话
非空
receiver_address
varcahr
60
无
收货人地址
非空
Is_or_not
char
2
无
是否购买
非空
取消订单表
表名cancel
字段名
数据类型
长度
主外键
字段说明
备注
order_no
varcahr
15
主键
订单号
非空
m_no
varcahr
15
外键
会员号
非空
goods_no
varcahr
15
外键
商品号
非空
reason
varcahr
20
否
取消订单原因
无
cancel_time
timestamp
否
取消订单时间
无
下架表
表名stop_sell
字段名
数据类型
长度
主外键
字段说明
备注
s_no
varchar
15
主键
会员号
非空
goods_no
varchar
15
主键
商品号
非空
stop_time
date
否
下架时间
非空
stop_reason
varchar
30
否
下架原因
无
供货表
表名provide
字段名
数据类型
长度
主外键
字段说明
备注
provide_no
varchar
15
主键
供货单号
非空
s_no
varchar
15
外键
卖家号
非空
goods_no
varchar
15
外键
商品号
非空
provide_num
smallint
否
供货数量
非空
provide_time
date
否
供货时间
非空
2.3关系模式
会员(账号,密码,姓名,性别,电话,Email)
商品(商品号,商品名,商品种类,单价,库存量,商品描述,活动状态)
卖家(卖家号,密码,卖家名,性别,卖家地址,卖家电话)
购买(订单号,会员号,商品号,购物单价,购买数量,付费方式,送货方式,收货人姓名,收货人电话,收货人地址,是否购买)
取消订单(订单号,会员号,商品号,取消订单原因,取消订单时间)
下架(卖家号,商品号,下架时间,下架原因)
供货(供货单号,会员号,商品号,供货数量,供货时间)
用户表(账号,密码,用户名)
在数据库的需求分析阶段,考虑到我们需要建立一个登陆系统的账户,如果每一次用户登录网上购物系统时,数据库都要从会员表或者是卖家表全表查询,核对用户的登录信息是否正确,这样做太浪费时间,我们就又建了一张表用户表(all_user),虽然浪费了一点存储空间,但是提高了系统的效率,采用空间换时间的方法,来降低用户登录的时间。
2.4关系图
图5数据库所涉及的重要的表的关系图
三、数据库增删改查功能的实现
数据库的前台部分主要是实现了数据库中表的内容的增删改查的功能,其具体的实现如下面所述:
1、会员登录
已注册的会员凭借自己已获得的账号和密码,可以登录网上购物系统。
2、注册会员
通过在数据库的会员表里添加新内容的方法,来实现新用户注册成为会员的需求。
具体的实现SQL语句如下所示:
INSERTINTO"member"(m_no,m_pwd,m_name,sex,email,m_phone)
VALUES(:
sle_1.text,:
sle_3.text,:
sle_2.text,:
sle_6.text,:
sle_4.text,:
sle_5.text);
3、会员信息查询
采用按用户名(精确查询)查询的方式,来实现查询数据库中会员的个人信息的功能需求,并将按用户名查询出来的结果显示在数据窗口dw_1,其具体实现的SQL语句如下所示:
dest="
SELECT m_no,m_name,email,sex,m_phone
FROM member
WHERE m_name='"+sle_1.text+"' "
DW_1.Object.DataWindow.Table.Select=dest
dw_1.settransobject(sqlca)
dw_1.retrieve()
4、修改用户信息
用户在使用网上购物系统的过程中,出于对个人生活方便的考虑,可能会需要修改自己在网上购物系统中已注册的个人信息。
通过会员修改个人信息的操作实现对数据库中数据表的内容的更新和修改功能。
具体实现的SQL语句如下所示:
update"member"
SET
"m_name"=:
sle_2.text,
"m_pwd"=:
sle_4.text,
"member_Email"=:
sle_8.text,
"m_phone"=:
sle_8.text,
WHEREm_name=:
sle_1.text;
5、删除用户信息
卖家或许会因为自己工作选择或经济条件的问题的出现,而选择停止在网上开店售物时,可以选择注销掉自己的账号,删除自己的个人信息。
通过用户注销自己账户的的操作来实现对数据库中卖家表的内容的删除功能,该操作的实现具体的PB程序语句如下所示:
deletefromsellerwheres_no=:
sle_1.text;
四、数据库表的建立和数据的载入实例
需要明确数据库需要建立几张表,以及每个表中所要包括的属性。
在建立表的过程中。
要对每个表进行字段属性的设置。
(至少包括6张表,每个表都有主键,设必要的外键;根据实际情况,设计一个Check约束;至少建立一个视图)
(一)、表的建立及数据显示
4.1、会员表建立
createtablemember(m_novarchar(15)primarykey,
m_pwdvarchar(15)notnull,
m_namechar(40),
sexchar
(2)check(sexin(‘男’,‘女’)),
Emailvarchar(20)notnull,
m_phonechar(15)notnull);
会员表的数据示例如下:
4.2、卖家表的建立
createtableseller(s_novarchar(15)primarykey,
s_pwdvarchar(15)notnull,
s_namechar(40),
sexchar
(2)check(sexin(‘男’,‘女’)),
s_addressvarchar(60)notnull,
s_phonechar(15)notnull);
卖家表的数据示例如下:
4.3商品表的建立
createtablegoods(goods_novarchar(15)primarykey,
goods_namevarchar(25)notnull,
goods_stylevarchar(15)notnull,
goods_pricefloatnotnull,
goods_inventorychar(10)notnull,
descriptionvarchar(300),
activity_statevarchar(20));
商品表内的内容:
4.5购买表的建立
createtablebuy(order_novarchar(15)notnull,
m_novarchar(15),goods_novarchar(15),
buy_pricefloatnotnull,order_numsmallintnotnull,
pay_wayvarchar(10)notnull,send_wayvarchar(10)notnull,
receiver_namevarchar(40)notnull,receiver_phonechar(15)notnull,
receiver_addressvarchar(60)notnull,is_or_notchar
(2)notnull,
primarykey(order_no),
foreignkey(goods_no)referencesgoods,
foreignkey(m_no)referencesmember);
表述添加的数据如下表所示:
4.5取消订单表
实现的主要SQL语句:
createtablecancel(order_novarchar(15),
m_novarchar(15),goods_novarchar(15),
cancel_reasonvarchar(20),
primarykey(order_no),
foreignkey(goods_no)referencesgoods,
foreignkey(m_no)referencesmembet);
4.6下架表
实现的主要SQL语句:
createtablestop_sell(s_novarchar(15),
goods_novarchar(15)notnull,
stop_timedatetime,
stop_reasonvarchar(20),
primarykey("s_no","goods_no"),
foreignkey("goods_no")referencesgoods,
foreignkey("s_no")referencesseller);
4.7供货表
实现的主要SQL语句:
createtableprovide(provide_novarchar(15),s_novarchar(15),
goods_novarchar(15),provide_numsmallintnotnull,
provide_timedatetimenotnull,
primarykey(provide_no),
foreignkey(goods_no)referencesgoods,
foreignkey(s_no)referencesseller);
表的创建的主要SQL语句已基本列出,至于表中的数据增删改查的功能实现,也都只采用部分功能的实现语句来给予示例。
(二)、视图及存储过程
为了熟悉对视图和存储过程的使用,我建了一个视图v_goos和一个存储过程store_g_info
分别用来实现按商品号查询商品信息和按商品种类来实现查询商品信息的功能。
具体创建视图和存储过程的主要SQL语句如下所示:
创建视图v_goos:
(1)PB中可运行的程序如下所示:
createviewv_goos(goods_no,goods_name,goods_style,
goods_price,goods_inventory,description,activity_state)
asselectgoods.goods_no,goods.goods_name,goods.goods_style,
goods.goods_price,goods.goods_inventory,goods.description,goods.activity_statefromgoods;
SQLserver2005中的SQL语句如下:
createviewv_goos
asselect
goods_no,goods_name,goods_style,
goods_price,goods_inventory,description,activity_statefromgoods;
创建存储过程store_g_info:
createprocedurestore_g_info
@gstyvarchar(15)--定义一个输入参数
as
begin
select*fromgoods
wheregoods_style=@gsty--要求ID列与输入参数相等
end
五、实习心得
在这一学期数据库的学习过程中,看着老师熟练操纵着SQL语句实现一个个的功能要求,让我们对学习这门课程充满了热情。
我们认为,数据库课程设计的主要目的就是利用课程中学到的数据库知识和技术设计出数据库应用系统,从而解决各行业信息化处理的要求。
这次我们这组做的是网上购物系统的设计,说实话,这次的实验确实有些难度,在为期大约两周的实验中,虽然是两人一组,也遇到了不少的麻烦和问题。
或许是平时眼高手低,不注意经常动手操作的缘故吧,刚开始的工作中经常会出现一些微小的错误,不过经过和同学们的探讨或者是通过老师的帮助,以及资料的查询,最后我们还是解决了这些麻烦和问题,最终完成了实验,过程虽然坎坷,但好在结果不错。
总的来说,这次的大实验对于我们来说非常有意义,让我们不在局限于课本知识,而是付出实践,而且还巩固了我们对数据库基本原理和基本理论的理解,不仅锻炼了我们团队合作以及解决问题的能力,通过开发这个项目,巩固了以前所学的理论知识,提高了自己理论联系实际的能力,为今后进一步学习新技术打下一个很好的基础,为我们将来步入社会做了准备。