ACCESS网上书店数据库系统

1 概述
1.1本项目的研究意义
当今社会,随着计算机技术的发展应用和网络的普及,网络给人类社会带来了巨大变化,建立网上书店的销售管理系统是时代的潮流。随着互联网技术的进一步发展,电子商务正以一种惊人的速度发展着。本项目是网上书店购物系统,以网络为媒介,通过创建一个虚拟的书店——星期三书店。
首先,网上书店方便了网民的生活,更加便捷地、足不出户便可买到心仪的书籍。用户通过网络查询自己所需要的书籍信息,避免了顾客自己实地挑选商品的烦琐过程,使用户的购物过程变得轻松、快捷、方便,与高效。其次,网上购书减少了许多中间销售代理,因此价格会比较低,对广大网民的好处显而易见。再者,网上书店是信息化购物,基本上所有操作都是通过计算机程序自动完成的,因此大大降低了劳力的消耗。通过建立网上书店购物系统,可以提高企业的生产效率,降低经营成本,优化资源配置,从而实现企业的利润最大化。最后,电子商务与出版发行业的结合使发展网上书店及研究网上书店具有双重意义,充分结合互联网销售的特点探索图书发行的新渠道和新模式,是对电子商务科学的充实和补充,更是对出版发行业发行渠道和市场的开拓和创新
1.2 设计目标和任务
网上书店数据库系统是基于B/S模式,通过对一些典型电子商务网站的考察、分析,而设计的一套信息化管理系统。该系统主要分为两部分,为前台系统(即面向普通用户和会员)和后台系统(面向管理员)。“星期三书店”以“服务至上”为原则,力图为为管理者提供方便的管理、为顾客提供快捷的购买。主要有以下目标:
(1)前台系统为顾客提供一个网络服务平台:使顾客通过互联网随时随地查询书籍信息它打破了时空界限,能通过网络实现从浏览商品到购买商品的全部过程。同时,以身份为界限,为普通用户和会员提供不同的服务,带来不同的用户体验。
(2)后台系统为系统管理员提供一个工作平台:即管理者通过该数据库系统完成图书管理、订单管理、用户管理和统计报表任务,实施采集信息,处理信息,分析信息等一系列工作,使管理服务工作更加系统化,完整化,人性化。
2 数据库的设计过程
2.1 需求分析
需求分析简单地说就是分析用户的要求。需求分析是设计数据库的起点也是重点。需求分析的结果是否准确地反映了用户的实际需要,将直接影响到后面各个阶段的设计,并影响到设计结果是否合理和实用,做好需求分析对整个数据库的设计有着极为重要的作用。通过准确了解、分析用户的需求形成需求分析说明书。本网上书店系统而言,书店面向三种身份的人群:普通用户、会员、管理员,针对三种用户的个性需求,作出的需求分析如下:

2.1.1 需求分析的具体内容
(1)需要的数据以及数据结构
1)每本图书的信息包括:ISBN,书名,类别,作者,出版社,单价,折扣,成交价,库存数量,图示概述,进货量,成本,入库时间。
2) 每个会员的信息包括:会员ID,手机号,密码,名字,省份,积分,图片,注册时间。
3)每张订单的信息包括:订单编号,订购日期,发货日期,会员ID,发货状态,发票号。
4)购物车的信息包括:会员ID,ISBN,书名,成交价,预定数量
5)图书评价的信息包括:书名,图书质量,阅读体验,综合评价,留言
(2)数据之间的关系
1)只有会员才可以购买图书
2)每个会员可以有多个订单,每个订单仅属于一个会员。
3)每个会员购买图书时,首先将选购的图书加入购物车,选购结束时生成订单
4)每个订单可以包含多种图书的商品,每种图书商品可以出现在多个订单中
5)订单信息中每种图书都有对应的定价、折扣、库存数量、ISBN、书名、类别、图书概述、作者、出版社、入库时间
6)订单表包括订单编号、订购日期、发货日期、会员ID、发货状态、发票号
7)每个订单表有相应的订单详情,包括订单编号、ISBN、数量
(3)需要在网上书店数据库实现时遵循的业务规则
1)数据的取值范围。比如会员的注册时间,其值不能大于当前时间。
2)数据类型和长度要求。比如书名的类型必须是文本型;成交价的类型必须是数值型。
3)必填的值。比如注册会员时的密码,手机号等
4)数据的值合理性检查
5)数据的默认值的设定。如ISBN为17位,会员密码为8位等。
2.1.2 需求分析的阶段性成果
(1)网上购书一般流程图

(2)网上书店主要业务流程图

订单生成流程图 订单受理流程图

(3)管理员系统

2.2 概念结构设计阶段
2.2.1 概念结构设计过程
概念结构设计是整个数据库设计的关键。在需求分析阶段我们详细了解并描述了用户的应用需求,但这些应用需求还是现实世界的具体需求。通过对用户需求分析的综合、归纳与抽象,形成一个独立于具体 DBMS的概念模型。概念结构设计是现实世界与机器世界的中介,它一方面能够充分反映现实世界,包括实体和实体之间的联系,同时又易于向关系、网状、层次等各种数据模型转换。
(1)确定实体
(2)确定实体属性
(3)确定主键
(4)使用E-R图描述构建的概念模型

2.2.2 E-R图

2.3逻辑结构设计阶段
从理论上讲,设计逻辑结构应该选择最适合描述与表达相应概念结构的数据模型,然后对支持这种数据模型的各种DBMS进行比较,从中选出最合适的DBMS。目前DBMS产品多是关系型的,这一阶段的任务主要是讲E-R图转化为一组关系模式,利用规范化理论对数据模型进行优化。
2.3.1 转化为关系模式
图书表(ISBN,书名,类别,作者,出版社,单价,折扣,成交价,库存数量,图示概述,进货量,成本,入库时间)
会员表(会员ID,手机号,密码,名字,省份,积分,图片,注册时间)
订单表(订单编号,订购日期,发货日期,会员ID,发货状态,发票号)
订单明细(订单编号,ISBN,数量)

2.3.2 优化设计
上述四个关系模式都是第三范式,不存在低级的数据冗余

2.4 物理结构设计阶段
数据库最终是要存储在物理设备上的。数据库在物理设备上的存储结构与存取方法称为数据库的物理结构,它依赖于给定的计算机系统。为一个给定的逻辑数据模型选取一个最适合应用环境的物理结构的过程,这就是数据库的物理设计。这一阶段的主要成果实在数据库中生成具体的表(实际是表结构),包括创建主键、外键、属性列、索引、约束等。
2.4.1 表的结构
图书表的表结构

字段名 ISBN 书名 类别 作者 出版社 单价 折扣
字段类型 文本 文本 文本 文本 文本 货币 文本
字段长度 17
说明 主键 小数位为0

字段名 成交价 库存数量 图书概述 进货量 成本 入库时间
字段类型 货币 数字 文本 数量 文本 日期/时间
字段长度 长日期
说明 小数位为自动 小数位为自动
会员表的表结构
字段名 会员ID 手机号 密码 名字 省份 积分 图片 注册时间
字段类型 文本 文本 文本 文本 文本 数字 附件 日期/时间
字段长度 8 11 6 10 10 长整型 长日期
说明 主键

订单表的表结构
字段名 订单编号 订购日期 发货日期 会员ID 发货状态 发票号
字段类型 数字 日期/时间 日期/时间 文本 文本 文本
字段长度 10 长日期 长日期 8 12
说明 主键

订单详情的表结构
字段名 订单编号 ISBN 数量
字段类型 数字 文本 文本
字段长度 10 17 长整型
说明 与图书表中的“ISBN”设置相同,主属性 与订单表表中的“订单编号”设置相同,主属性 主属性
2.5 数据库实施(略)
2.6 数据库运行和维护(略)
3 数据操作流程图

4 系统难点及解决方案
4.1 难点一:生成订单的流程
解决方案:
第一步:为购物车中“生成订单”按钮嵌入宏

第二步:将购物车的内容追加到订单表

第三步:将订单表的内容追加到订单明细表

第四步:删除购物车表中的相应内容

第五步:查询新订单的总价

第五步:将新订单的总价显示在窗体

第六步:完成虚拟支付

4.2 难点二:发货的流程
解决方案:单击发货按钮后,将订单的发货状态更新为“否”(有bug)

5 系统创新点
5.1 登录界面

5.1.1 验证码登录
Option Compare Database
Dim a(1) As Integer

Private Sub Command23_Click()
i = 1
a(i) = Int(9000 * Rnd + 1000)
Text21.SetFocus
Text21.Text = a(i)
End Sub

5.1.2 会员找回密码
Private Sub Command2_Click()
Dim n As Integer
If IsNull(Me.Text0) Then
MsgBox “请输入手机号或会员ID!”
ElseIf DLookup(“手机号”, “会员表”, “手机号=’” & Me.Text0 & “’”) = Me.Text0 Then
A = DLookup(“密码”, “会员表”, “手机号=’” & Me.Text0 & “’”)
Text3.SetFocus
Text3.Text = A
ElseIf DLookup(“会员ID”, “会员表”, “会员ID=’” & Me.Text0 & “’”) = Me.Text0 Then
A = DLookup(“密码”, “会员表”, “会员ID=’” & Me.Text0 & “’”)
Text3.SetFocus
Text3.Text = A
Else
MsgBox “不存在此手机号或会员ID,请重新输入!”
Text3.SetFocus
Text3.Text = “”
Text0.SetFocus
Text0.Text = “”
End If
End Sub

5.1.3 显示当前时间
Private Sub Form_Timer()
Me.Text31 = Time()
End Sub
5.2 会员界面
5.2.1 根据会员购书记录推荐图书

5.2.2 网上支付

5.2.3 每日推荐小视频

5.2.4 猜谜小游戏

Private Sub Command5_Click()
Static n As Integer

If Text3 = “四世同堂” Then
MsgBox “恭喜你!回答正确!”
MsgBox “感谢您的参与!请再接再厉!敬请关注下一期猜谜游戏!”

End If
If Text3 <> “四世同堂” Then
MsgBox “回答错误,请思考并重新输入答案!”
Text3 = “”
Text3.SetFocus
n = n + 1

If n >= 3 Then
MsgBox “您已猜错三次,正确答案是“四世同堂”。”
MsgBox “感谢您的参与!请再接再厉!敬请关注下一期猜谜游戏!”
Text3 = “四世同堂”
Me.Text3.Locked = True
End If
End If

End Sub
5.3 管理员界面
5.3.1 库存紧张提示

5.4.2 销售图表分析

5.5.3 会员头像

设置图片链接
5.5.4 查看会员足迹

将“购书记录”查询作为该窗体的数据源
5.5.5 查看新增会员

Private Sub Command5_Click()
If [Text1] > [Text3] Then
MsgBox “开始时间不能大于结束时间”
Text1.SetFocus
Else
DoCmd.OpenQuery “会员注册时间”
End If
End Sub
5.5.6 管理员日志

Private Sub Command4_Click()

Form_管理员日志.Text5.SetFocus
If Form_管理员日志.Text5.Text = “” Then
MsgBox “您今天还没有写工作日志哦”
Else
Call filewrite(“D:\管理员日志.txt”)
End If

End Sub

Public Sub filewrite(content As String)
Open content For Append As #1
Form_管理员日志.Text5.SetFocus
Write #1, Form_管理员日志.Text5.Text
Close #1
DoCmd.Close acForm, “管理员日志”
End Sub

你可能感兴趣的:(ACCESS网上书店数据库系统)