https://www.bilibili.com/video/BV1Qy421878r/
演示视频:
3.1 系统设计思想
3.1.1 页面模块化
把页面中一些常用的部分集成为模块,例如页面的头部、尾部和数据库连接文件,这样设计新的页面时如果有重复出现的部分,只需要拿现成的模块来组装就可以了。
在本系统中,将数据库连接存入conndb.JSP文件中,当需要数据库连接时,只要用Include语句包含此文件即可。
另外系统页面结构定义在一个模板文件template.JSP中,在这个文件中可以看到系统中基本的页面组成结构。只要在此模板页面中的特定位置加上实现某种功能的页面代码,此页就会成为一个具有特定功能的 完整的页面。例如ProductDetail.JSP文件是在template.JSP文件中加入了下面一行代码而具备了显示商品详细信息的功能。
call ShowProduct(RealSruing(Request.QUERYstring("id")))
3.1.2 注重安全性
1)不要把Sql 2000数据库放在网站内部
不要把Sql 2000数据库文件放在网站结构内部,这样,当恶意人士获取数据库路径后,就可以轻易获取该数据库,进而肆意更改数据库内容。比较好的做法是,使用SQL 2000数据库或Oracle数据库,或者将Sql 2000数据库文件放在网站虚拟目录以外。
2)过滤字符串中的单引号
当用字符串来组织SQL语句时,最重要的一个问题就是过滤字符串中的单引号,因为SQL语句中的字符是以单引号为分界的,例如下面的语句,在执行时就会出错:
strName="I'm Hacker"
strSQL="SELECT*FROM User WHERE[Name]='"&strName&"'"
conn.Execute strSQL
这样,在实际执行过程中最终SQL语句如下:
SELECT*FROM User WHERE [Name]=‘I'm Hacker'
由于在“I‘m Hacker”中包含一个单引号“’”,这样系统会认为在字母“I”后面已经结束,但后面仍有字符,于是就会提示语法错误。因此需要将单引号过滤掉,或者替换为两个单引号(在SQL语法中用两个单引号表示一个单引号),只要使用VBScript中的Replace函数就可以达到目的。
3.1.3 代码的复用
本系统中使用了很好的代码复用机制,即在开发中尽量使用本系统中已经使用过的代码,以及使用以前项目积累的代码,如分页、检查E-mail的函数和上传类。
3.2 系统功能模块划分
根据系统功能分析,可以画出系统的功能模块图,从客户界面,管理界面分别对功能模块图加以描述。
管理界面的系统功能模块图如图3-1:
4 数据库设计
3.1 数据库需求分析
用户的需求具体体现在各种信息的提供、保存、更新和查询方面,这就要求数据库结构能充分满足各种信息的输入和输出。收集基本数据、数据结构及数据处理的流程,组成一份详尽的数据字典,为后面的具体设计打下基础。
通过系统功能分析,针对一般的商场零售系统,总结出如下的需求信息:
1)用户分一般用户、注册用户和管理员用户。
2)一般用户和注册用户无需要登录就可以查看商品信息和购买
3)注册用户登录后可以维护自己的个人信息,并且在向网站发出定单时会自动填写自己的联系信息。
4)按商品类别来分类,每一个商品都对应一个类别。
5)定单分单张详细定单和总定单。
6)一个用户可以购买多个或多种型号的商品。
7)一个用户对应一张定单列表。
8)一个定单列表对应多张定单详细信息。
9)提供购物帮助功能。
关于定单列表与定单详细信息可以这样理解:因为用户一次可以购买多种产品。则对每种产品(即每一款型号的商品)生成一条定单详细信息记录。然后多个这样的定单详细信息组成一个定单列表。每一个定单列表才与一个用户对应,在发货时以定单列表为单位,也即用户在操作时所看到的“定单”。
经过系统功能分析和需求总结,考虑到将来功能上的扩展,设计如下的数据项和数据结构:
1)管理员信息,包括数据项:帐号,姓名,密码。
2)注册用户(会员),包括数据项:用户ID,用户名,密码等。
3)商品,包括数据项:商品编号,商品名称,分类编号等。
4)商品分类,包括数据项:分类编号,分类名称,上级分类编号(扩展,备用)。
5)定单详细信息,包括数据项:定单编号,订单列表编号,商品编号,购买数量。
6)定单列表,包括数据项:定单列表编号,用户编号,下单时间,联系方式等。
7)购物帮助,包括数据项:问题ID,问题标题,答案和点击次数。
3.2 数据库概念结构设计
得到上面数据项和数据结构以后,就可以设计出能够满足用户需求的各种实体,以及它们之间的关系,为后面的逻辑结构设计打下基础。这些实体包含各种具体信息,通过相互之间的作用形成数据的流动。
设计规划出的实体有:管理员信息实体、注册用户(会员)信息实体、产品实体、产品类型实体、定单详细信息实体、定单列表实体和常见问题实体。
实体之间关系的E-R图如图3-1所示:
管理员信息实体E-R图如图3-2所示:
注册用户信息实体ER图如图3-3所示:
商品实体ER图如图3-4所示:
定单详细信息实体ER图如图3-6所示:
定单列表实体ER图如图3-7所示:
常见问题实体ER图如图3-8所示: