资源描述
安阳师范学院 《数据库高级应用》课外实践报告·
《数据库高级应用》课外实践报告
项 目 名 称: 电子商城
所 在 班 级: 2011级软件工程(Java方向)一班
小 组 成 员:王芳 杨玲玲 程晓洁 王滨 屈威 乔光明 吴义霜 张艳
指 导 教 师: 熊 晶
起 止 时 间: 2013-12-01——2013-12-30
项目基本信息
项目名称
电子商城
项目简介
随着互联网技术的日趋成熟和经济的发展,网上购物越来越收到人们的欢迎,青年大学生作为一个巨大的消费团体,相对的需求也越来越大。我们的电子商城平台本着时时处处为学生考虑的精神, 以jsp作为前台,my sql数据库作为后台,通过用户注册进入系统,随意浏览之后购买我们的商品等。
任务分工
王芳110907054: 调试代码,用户登录模块设计
杨玲玲110907072: 商品信息分类查询的实现
程晓洁110907006: 商品信息分页查询的实现,实践报告的填写
王滨110907053: 商品信息查询模块的实现
屈威110907045:查看购物车的实现
乔光明110907044: 生成订单的实现过程
吴义霜110601089:收集商品图片和信息
张艳110601090:收集商品图片和信息
一、 系统分析
1.1背景
1.1.1 数据库设计背景
随着互联网技术的日趋成熟和经济的发展,网上购物越来越收到人们的欢迎,青年大学生作为一个巨大的消费团体,相对的需求也越来越大。但是以淘宝为代表的网购平台商品琳琅满目,学生在面对巨大诱惑的前提下很难快速选到称心如意的商品。针对这种情况,我们的电子商城平台应运而生。本着时时处处为学生考虑的精神,建立起来的大学生购物系统,力求使我们的购物平台为买方提供方便快捷的购物通道,准确详实的商品信息,为买卖双方提供了良好的沟通渠道,满足大学生日益增长的交易需求。
1.1.2可行性分析
通过研究,本系统的可行性有以下三方面作保障
(1)技术可行性
本系统采用Windows xp作为操作平台,数据库管理系统采用My SQL相关技术,该数据库管理系统具有复制、备份等功能,大大提高了数据库的安全性和可行性,并且技术开发人员已经基本熟练地掌握了My SQL相关技术,因此在技术上是可行的。
(2)经济可行性
数据库管理软件:My SQL
前台界面开发软件:My Eclipse
(3)操作可行性
该系统运行所需配置低、用户操作界面友好,不论是开发还是使用该系统,都具有较强的操作可行性。
1.2数据需求
网上购物平台需要设计如下的数据字段和数据表:
1.商品信息表:商品名称、商品生产厂商、商品介绍、商品添加的时间、现价、特价价格、购买次数、是否是特价商品
2.订单信息表:商品订货的编号、会员的编号、会员真实姓名、订货地址、订货电话、付款方式、运送方式、备注信息、送货物是否成功
3.订单明细表:订货编号、商品编号、价格、订货数量、创建时间
4.会员信息表:会员名称、会员密码、会员真实姓名、会员年龄、会员职业、电子邮箱地址、找回密码的问题、找回密码的答案
1.3事务需求
此数据库网上购物平台主要应用于用户注册、登录、浏览商品、购物、加入购物车等主要功能。具体功能如下所述:
1.用户管理:包括用户的添加、修改、删除等。若不是网购用户,则没有权限对用户进行管理。
2.商品信息管理:主要包括商品信息的添加、修改、删除和查询。
3.买家信息管理:主要包括买家购物的价格,商品,以及订单的管理。
1.4完整性及安全性要求
系统的安全性对系统是否正常使用具有重要意义,为了实现购物平台的安全性,在程序设计方面主要采用两个步骤:一是系统登陆保密设计,二是数据库的安全性设计。
系统登陆保密设计:用户每次进入系统时,都要进行用户登录,只有输入正确的用户名和口令后,方可进入该子系统,为了防止非法用户恶意捣乱。
数据库的安全性设计:对数据库及时进行备份,以防数据丢失,存储过程添加触发器进行约束,防止数据出错。
1.5数据字典
商品信息表tb_goods
数据项名称(库中字段名)
数据类型及长度
说明
可否为空
id
int(4)
ID
NOT NULL
account
int(4)
大类别的编号
NOT NULL
password
int(4)
小类别表的外键信息
NOT NULL
managerLevel
Varchar(50)
商品的名称
YES
goodForm
Varchar(50)
商品生产厂商
YES
introduce
Text(16)
商品介绍
YES
crea Time
Smalldatetime(4)
商品添加的时间
YES
nowPrice
Money(8)
现价
YES
freePrice
Money(8)
特价价格
YES
number
Int(4)
购买次数
YES
mark
Bit(1)
是否是特价商品
YES
订单信息表tb_order
数据项名称(库中字段名)
数据类型及长度
说明
可否为空
id
int(4)
ID
NOT NULL
number
Varchar(50)
商品订货的编号
YES
name
Varchar(50)
会员的编号
YES
reallyName
Varchar(50)
会员真实姓名
YES
address
Varchar(50)
订货地址
YES
tel
Varchar(50)
订货电话
YES
setMoney
Varchar(50)
付款方式
YES
post
Varchar(50)
运送方式
YES
bz
Text(16)
备注信息
YES
sign
Bit(1)
发送货物是否成功
YES
订单明细表tb_orderDetail
数据项名称(库中字段名)
数据类型及长度
说明
可否为空
id
int(4)
ID
NOT NULL
orderNumber
Varchar(50)
订货编号
YES
goodId
Int(4)
商品编号
YES
price
Float(8)
价格
YES
number
Int(4)
订货数量
YES
creaTime
Smalldatetime(4)
创建时间
YES
会员信息表tb_member
数据项名称(库中字段名)
数据类型及长度
说明
可否为空
id
Int(4)
ID
NO
name
Varchar(50)
会员名称
YES
password
Varchar(50)
会员密码
YES
reallyName
Varchar(50)
会员真实姓名
YES
age
Int(4)
会员年龄
YES
profession
Varchar(50)
会员职业
YES
email
Varchar(50)
电子邮箱地址
YES
question
Varchar(50)
找回密码的问题
YES
result
Varchar(50)
找回密码的答案
YES
按使用者的不同,购物系统的任务可分为用户注册、用户登录、购买商品以及把它放入购物车、查看购物车中商品信息
完成普通用户交易的任务:
(1)普通用户可以在登陆系 统后,查看并更改自己的个人注册信息,可以在个人信息中查看 到自己已订购的和正上架交易的商品信息,并可对未被订购的商 品信息做更新和删除操作,对已被订购的商品进行发货确认操作。
(2)当普通用户有商品需要上架时,可在卖方系统中实现商品信息(包括详细描述和图片)的上传,系统将上传的商品记录 添加到数据库商品表。
(3)当普通用户有购买商品需求时,可在 买方系统中查看与所需信息对应的各条商品记录。当找到有合适 的商品时,可将之放入购物车内,最终通过对购物车内商品的订 购确认,完成商品的订购过程。系统将自动扣除用户帐户金额,当买方确认收货后,系统将此金额授予卖方用户。用户可以在一笔交易完成后,对交易对方的信用度进行评价。
(4)要求系统可 以自动对由于各种原因导致的交易过程中出现的各种情况进行 及时有效的处理,以保证买卖双方的权益不受损害。
二、数据库系统设计
2.1 概念结构设计
管理员登录账号
管理员信息
自动编号
管理员信息
管理员标识
管理员登录密码
管理员真实姓名
商品实体
商品特价
商品名称
商品产地
自动编号
特价商品标识
商品
商品现价
商品销售次数
商品发布时间
商品介绍
商品图片
会员实体
自动编号
会员真实姓名
会员登录密码
会员电子邮箱
会员职业
会员
会员年龄
会员登录账号
提示问题
问题答案
订单实体
订货人真实姓名
订单编号
订货人编号
自动编号
订货人地址
订货邮寄方式
订单
订货人电话
订单备注细信息
订货价格
订单明细实体
订单编号
商品价格
订单明细
商品编号
商品数量
自动编号
2.2 数据库的实施
根据数据字典和概念结构设计、逻辑结构设计内容,我们的数据库实施步骤如下:
1、建立数据库,库名为:db_shoping;
2、建表并添加信息,即数据的载入。
需要建的表有tb_goods、tb_order、tb_orderDetail、tb_member、tb_bigType、tb_smallType
数据的载入步骤为:(1)筛选数据
(2)转换数据格式
(3)输入数据
(4)校验数据
3、程序的编码与调试
在数据库db_shoping实施的阶段,我们会对那些代码进行测试,及时发现错误并加以修改,虽然这是一个枯燥无味的过程, 并且会遇到这样那样的许多困难,不过我们会一直坚持,我们每次的失败只能说明我们离成功又近了一步。
4、数据库的试运行
由于组织数据库是十分费时、费力的事,因此我们采取分期分批的组织数据入库,先输入小批量数据进行调试用,待试运行基本合格后,再大批量输入数据,逐步增加数据量,逐步完成运行评价。还有就是数据库试运行阶段,由于系统还不稳定,硬软件故障随时都有可能发生,我们会做好调试运行DBMS的恢复功能,做好数据库db_shoping的转储和恢复工作。
2.3数据库的维护
由于运行环境在不断变化,数据库运行过程中物理存储也会不断变化,因此我们需要对数据库db_shoping进行评价、调整、修改等维护工作。在数据库运行阶段,对数据库经常性的维护工作主要由DBA完成的,它包括:
1、数据库的转储和恢复,以保证一旦发生故障尽快将数据库恢复到某种一致状态,并尽可能的减少对数据库的破坏。
2、数据库的安全性、完整性控制,以满足用户要求。
3、数据库的监督、分析、和改造,判断当前系统运行状况是否是最佳,以作改进。
4、数据库的重组织与重改造
数据库运行一阶段时间后,由于记录不断增、删、改、会使数据库的物理存储情况变坏,降低了数据的存取效率,数据库性能下降,这是DBA就要对数据库进行重组织或部分重组织。
由于数据库应用环境发生变化,增加了新的应用或新的实体,取消了某些应用,有的实体与实体间联系也发生了变化等,使原有的数据库设计不能满足新的需求,需要调整数据库的模式和内模式,即数据库重改造。
三、系统实现
3.1 开发环境
3.1.1硬件环境
开发过程中,所使用的硬件环境:
计算机一台
3.1.2 软件环境
在以上硬件的基础上,开发系统必须所具备的软件系统,应该包括以下几个方面:
操作平台:Microsoft Windows xp
开发语言:My SQL\jsp web设计
3.2系统功能模块及结构描述
1、安全性管理
每个用户注册一个用户名和密码,以登录电子商城平台,便于身份验证,买家用户只能进行查询操作,看个人信息和商品信息不可修改它们。
用户: 查询购物信息、查看订单情况、查询个人信息、修改订单信息
3.3系统流程图
根据系统模块,得出总系统流程图如下:
会员客户端的系统流程图:
客户留言
新品上架展示
物价商品展示
销售排行榜
客户
购物车
验证成功
用户注册
收银台
管理员的流程图:
系统管理员
账户验证
验证成功
公告设置 会员设置 后台管理员设置 订单设置
友情链接 商品设置 商品大类别设置 商品小类别设置
3.4用JSP实现的界面
1、 首页
2、 登录页面
3、注册页面
4、 登陆后的页面
5、销售排行的页面
6、新品上架的页面
7、特价商品页面
8、 订单查看页面
9、 购物车页面
10、 会员修改页面
11、购物车页面
12、 购买成功页面
13、 安全退出页面
四、问题及解决方法
1、 在编写代码时发现代码明明没有错误,可就是运行不出来,结果就不得不重新敲一次,最后才发现标点符号不是在英文状态下。
2、 在连接数据库时遇到了阻碍,怎么运行就是不出来,反复调试之后发现没有驱动,下载驱动安装,困难迎刃而解。
总的来说,本系统整体性能不够完整,安全系数一般,并不是那么完整,但是根据我们的努力,还是解决了一部分的问题。
五、课外实践总结
这一学期刚开始,数据库老师就布置下此次课外实践的任务,但当时我们并不在意,想着还早,再加上刚接触这门学科,根本不知从何入手,直到最后,再过几天就要交作品了,我们才真正慌起来,对于网上购物我们是熟悉的,但没想到亲自做起来是那么难,刚开始我们组的同学就像无头苍蝇一样乱撞,总是找不到重心,到底是先做网页还是先做数据库呢,就在这种浅层次的问题上迷茫了好久,但时间紧任务重,容不得我们再继续迷茫下去,通过上网查资料,缠着学长问问题之外,我们组内同学更是不分白天黑夜的设计数据库,不断的修改,曾经午夜大的争吵声把其他同学吵醒,有时候忙活了一个晚上结果什么也没有调试出来,那种沮丧和无奈无法用言语形容,多少次想放弃,但在我们互相鼓励与努力下,终于,我们有了一点小的收获,激动与兴奋溢于言表!真是山重水复疑无路,柳暗花明又一村!
勤奋对于团队是至关重要的,需要大家的共同的努力,不断修改,从中发现缺点与不足,不断改进才能完成任务。所以小组中的每个成员的能力与协作能力也是很重要的。
其次呢,在实习中发现自己的确定和不足,并努力学习加以改正,在开发一个项目时一定要先做好规划,按照系统的开发过程,详细地写好每一个必要的文档。
最后,通过这次电子商城平台的设计,我们感到需要学习的东西还很多,能力还是很有限,我们的系统还有许多的不完整性,没有实现的很完美。但是通过这次的我们真的也学习到了许多知识,也明白了合作的重要性,还有就是无论做任何事都要仔细认真,否则一个微小的错误就可能造成巨大损失。
答辩记录
1、 数据库表之间的关联:
数据库中有tb_goods商品信息表、tb_member会员信息表、tb_order订单信息表、tb_orderDetail订单详情表、tb_bigType商品大分类表、tb_smallType商品小类别表
其中商品大分类表、商品小分类表和商品信息表之间是有关联的,通过商品信息表中的大小类别编号判断商品属于大分类还是小分类;
商品信息表还和订单详情表之间是有关联的,商品信息表中的id与订单详情表中的goodsid相对应;
订单详情表与订单信息表之间有关联,订单信息表与会员信息表有关联。
2、 添加购物车的实现
首先获取商品信息,通过getAttribute()方法获得list中的商品信息,然后判断商品是否已加入购物车过,如果cart=null则实例化Vector实现类,如已加入过,则添加商品的记录,将cart对象保存在客户端session中完成加入购物车的工作。
3、 订单形成的实现
首先将订单中的所有信息进行赋值,保存订单信息,然后插入SQL语句orderDao.insertOrderDetail(order);实现订单添加的操作,然后对商品的所有信息进行赋值,
orderDetailDao.insertOrderDetail(orderDetail);执行保存商品明细的操作,最后将将商品明细放入订单信息中形成订单。
4、 订单编号的形成
订单编号是系统自动生成的,用的是getParameter()方法获取订单编号,用setOrderNumber()方法将商品编号与订单编号对应起来对订单编号进行赋值的。
20
展开阅读全文