用户日志(日志标识、用户名、事件、结果、登录日期、登录IP)
管理日志(日志标识、管理员名、事件、结果、登录日期、登录IP)
文件用户(用户名、密码、路径、权限)
用户购买物品关系模式的关联如图9:
在用户日志和管理员日志关系模式表中它们的属性都是相同的,本应该合并到一起进行,但在实际应用的过程中,为了防止用户名和管理员名重名引起的冲突与提高查询效率,顾增加了冗余的存在。
数据库表 名称 作用描述
Goods 商品 存储商品信息
GoodsBigType 商品大类 商品大类信息
GoodsSmallType 商品小类 商品小类信息
Basket 购物车 顾客已选购的物品
Order 订单 顾客购买物品后的订单信息
TransPay 运送方式 用户支付类型
Board 公告板 商场发布的消息
Comment 评论 顾客对物品的评论和回复
Message 消息 站内顾客与顾客和管理员联系的工具
Users 用户 用于存储商场已注册的顾客信息
SysAdmin 系统管理 用于储存操作系统后台管理员信息
FileUsers 文件用户 用于WEB文件管理
Counter 计数器 用于统计虚拟商场和娱乐广场的访问人数
WebInfo 页面信息 商场信息和系统标志说明等相关信息
Menu 菜单 页面菜单栏设置
UserLog 用户日志 记录以用户身份登录的信息,用于安全分析
AdminLog 管理员日志 记录以管理员身份登录的信息,用于安全分析
表1是设计中所用到的17个表的名称及相关作用描述:
表1 系统所有表
在对表的具体设计时我们以Goods表为例,如表2
本表中我是严格按照第三范式来设计的,商品编号为主属性,可以作为主索引,其它为非主属性。其中Id为冗余属性,它是为提高数据库的查询速度而设计的。
列名 类型/大小 键/允许空 描述
Id Int/4 — 对记录标识递增量1
GoodsNumber Varchar/50 主键 商品编号
GoodsName Varchar/50 否 商品名
BigSortName Varchar/20 否 商品大类名
SmallSortName Varchar/20 否 商品小类名
Standard Varchar/50 是 规格
Package Varchar/50 是 包装
Producer Varchar/50 是 生产商
Brand Varchar/50 是 品牌
StorePrice Float/8 否 进货价
SalePrice Float/8 是 市场价
ComPrice Float/8 是 商场价
VipPrice Float/8 是 Vip会员价
Cprice Float/8 是 促销价
Content Text/16 是 商品信息描述
PostTime Datetime/8 是 增加商品时间
ReadCount Int/4 是 浏览次数
SaleCount Int/4 是 售出数量
ImageFile Varchar/50 是 商品图片位置
Cult3D Varchar/50 是 三维实体图位置
TJ Bit/1 是 特价
YTJ Bit/1 是 首页推荐
LTJ Bit/1 是 分类推荐
CX Bit/1 是 促销
3.2.3 系统功能模块设计原则
通常程序中的一个模块完成一个适当的子功能。应该把模块组织成良好的层次系统。我们在对模块设计时应该遵循启发式规则,使得模块规模适中,深度、宽度、扇出和扇入适当,并在设计模块时尽量使模块独立,做到高内聚,低耦合,并保持信息隐蔽和局部化原则。
在基于WEB的网站设计中,对系统的功能进行严格的划分是比较重要的,这样可以进行有效和完善的管理。因此从设计上的需要我把它分为前台信息的浏览、处理和后台数据、文件的管理。
前台功能模块的设计如图10:
会员登录:要求顾客输入账户(由数字和字母组成)、密码和验证码,只有登录成功的用户才能使用系统提供的特殊功能,否则只能浏览商品信息。
订单查询:查询自己提交的订单或订单当前的状态。并根据订单号查看自己在订单中购买的物品。
站内短信:用户可以查看与其它站内用户和管理员之间的短信,并能实现收发和对自己的短信进行删除。
会员信息:用户可以修改除账户以外的所有注册时填写的信息。但在修改密码时要求密码重复验证。
商品信息:要包括最新商品、推荐商品、热门商品和热卖商品,并根据相应的操作显示商品的具体信息。
商品搜索:实现对商品分类查询,当大类改变时,小类项会根据大类的名称自动显示属于它的小类。
类别推荐:显示商场对部分大类商品和小类商品的特别推荐,以增加商品销售量。
商品评论:让用户之间对某一产品进行自由评论,对某一用户发表的评论,可以让其他用户进行回复。
公告显示:商场发布一些重要信息和进行的活动要及时在显要位置通知用户。
计数器:用来统计用户对虚拟商场和娱乐广场分别访问的次数和来访者的位置,以对系统使用情况和访问用户进行跟踪。
后台功能模块的设计如图11:
管理登录:管理员登录入口,当成功登录后才能使用后台提供的各项管理功能。
用户信息:修改管理员自己的名称和密码。如果是最高权限用户可以增加、修改和删除其它普通用户的信息。
物品管理:实现对物品的增加、修改和删除等功能。
订单管理:查询用户订单或对用户已提交的订单进行查看、订单状态的改变和无效订单的删除等。
综合信息:对于网站本身某些标志或辅助功能的管理。
会员管理:给用户发送站内短信,查看、修改用户信息和删除用户。
公告管理:增加、修改和删除公告信息。
类别管理:对商品所属的大类、小类的添加、修改、删除和合并。如果是对大类之间的合并,它们下属的小类和商品也要同时进行合并。
短信管理:对属于管理员的短信接收、发送、删除和回复。
系统数据:对数据库中数据和日志文件进行备份。
运送方式:提供用户对运送方式的选择,并实现费用计算。
文件管理:在服务器FTP不能正常工作或不提供FTP服务时要提供WEB管理功能。这部分只有文件用户才能使用,商场系统管理员无此功能。
菜单管理:能动态的改变主页所提供的栏目,免去手工修改的麻烦,同时提供页面自动链接和排序功能。并可以根据需要对菜单增加、修改和删除。
3.2. 4 虚拟商场页面设计
前台浏览:
页面基本上可以划分为TOP、LEFT、CENTER、RIGHT和BOTTOM五个区域,其中TOP位置放入WEB动态标志,菜单栏,以蓝色为主;LEFT位置放入商品导航或广告,以渐变绿为主;CENTER位置放入页面要实现的功能,以浅绿为主;RIGHT可以放入公告、商品分类排行、超链接等信息,以渐变绿为主;BOTTOM位置放入网站信息、版权、计数器等信息,以绿色为主。
后台管理:
由于这主要是一个管理界面,因此从使用方便角度划分为:LEFT和RIGHT区域。LEFT部分要把所有管理功能的一级菜单列入其中,以实现快速操作。RIGHT是操作的显示区,每个显示的页面要包含一级操作以下的所有操作子菜单。以蓝色为主。
3.3 虚拟商场的详细设计
图12是用户登录的逻辑PAD图。用户通过P1登录,P2对输入信息检测,如果通过则进入P4,否则执行P3。通过后,用户就可以使用P5、P6和P7,并可以通过
P8和P9进行结算。如图12:用户可以在P10、P11、P12、P13、P14浏览商品然后用P15查看具体信息。如图13:是对最新商品显示的程序流程图,先对数据库中读取8条记录,如果记录条数不足4条则只在一行显示,如果超过4条则分两行显示,只有上一行显示足4条后,其它的才能在下一行显示。
3.4 实现
实现包括编码与维护:
源程序代码的逻辑简明清晰、易读易懂是编码一个重要标准,为了做到这一点应该做到下述规则:
(1) 程序内部文档:它包括恰当的标识符,适当的注解和程序的视觉组织等。
(2) 数据说明:数据说明的次序应该标准化,如果多个变量名在一个语句中说明时,应该按字母排列。
(3) 语句构造:遵循简单、高效,尽量少使用嵌套和复杂的条件测试。
(4) 输入/输出:对所有输入、输出数据进行检验,以验证其是否合法,并保持输入格式一致。
(5) 效率:尽量减少时间和空间的复杂度。
在WEB测试中,由于设计时是按功能模块进行开发的,因此开始就进行自顶向下测试是比较困难的。我在单元测试通过的情况下,然后再把它们整合到一起进行集中测试。对于少数的关键功能模块,我采用自顶向下的方法,以早期发现模块连接和功能实现上的错误。
由于WEB牵涉的页面比较多,并且大部分都涉及到页面的安全性问题。因此,除了常规的测试之外,我还要进行破坏性和强度测试。
3.5 网站发布和维护
在网站测试完之后,我就要使它成为公共的站点。这主要是将我的网站上传到WEB服务器上,然后在WEB服务器上配置好数据库,并用预先申请的域名映射到这个WEB服务器的IP地址。
与传统的软件系统不一样,Web系统是比较灵活的,它需要经常更新的。这种更新包括细微的变化到大规模的变化,可以是页面内容的刷新、也可以是整个页面结构框架的更新(例如:整个主页结构的变化、增加或变更一个栏目)。正是因为这种改变是经常存在的,所以大型Web应用系统的管理是一项艰巨的任务。对每一种变化,无论大小,都需要以一种合理的,有控制的方式进行处理。
3.6 虚拟商场安全性设计
由于虚拟商场是以WEB方式运行,因此它的安全性来源于运行环境和系统本身。对于运行环境我们应该及时进行安全跟踪,不断的对其中涉及到的软件进行升级和替换,以防止存在不安全漏洞而被黑客攻击。对于系统本身:为防止代码外泄可以用微软的ASPEncoder对系统进行加密,其中对于存在不安全隐患的代码,例如:地址栏中的敏感参数的显示和非正常使用出现的错误,要及时的进行修改和预防。
4 虚拟商场的实现过程
4.1 数据库设计和连接的实现
4.1.1 数据库设计的实现
首先建立数据库VirtualShop,再建立表,我只列出了Goods表的部分结构。其中Id为标识列,每次自动增加1,GoodsNumber为主键
create database VirtualShop
go
CREATE TABLE Goods (
Id int IDENTITY (1, 1) NOT NULL ,
GoodsNumber varchar (50) NOT NULL PrimaryKey,
GoodsName varchar (50) NULL ,
BigSortName varchar (50) NULL ,
SmallSortName varchar (50) NULL ,
…)
go
4.1.2 数据库连接的实现
在设计中我采用的是OLEDB方式连接SQLServer数据库,服务器名:ZHLL,账户为:sa,密码为:空,数据库名为:VirtualShop,其中采用的数据库连接对象控件是:ADO,方法为:Connection
<%
网上商城的设计与实现(三)相关范文