ASP.NET在线图书销售系统开发设计思想

2010-06-01 02:05刘海蓉朱永昌胡善岳
张家口职业技术学院学报 2010年1期
关键词:数据项管理员实体

刘海蓉,朱永昌,胡善岳

(1.黄冈职业技术学院,湖北黄冈438002;2.甘肃省金昌市公安局龙首分局武威路派出所,甘肃金昌737100;

在线图书销售系统是以互联网技术为依托,将现实中的图书销售活动网络化的电子商务应用典型实例。本文运用最新的Web开发技术ASP.NET,历经完整软件开发周期,实现了在线图书销售网站的构建设计。

1 系统设计

1.1 系统设计目标

本系统是针对电子商务应用网站设计的,主要实现如下目标:

(1)系统采用B/S模式开发,界面美观友好,信息查询方便,快捷,准确,数据存贮安全可靠。

(2)本系统为在线销售系统,较完备的订单查询和处理功能是其核心与本质。

(3)具备一定的统计分析功能,方便决策者分析处理。

(4)实现各种查询,如条件查询,模糊查询等。

(5)管理员可以随时修改自己的口令,内置超级管理员实现最高权限。

(6)对用户输入的数据,系统排错后给出提示,尽可能排除人为错误。

(7)系统最大限度地实现易安装性,易维护性和易操作性。

(8)系统运行稳定,安全可靠。

1.2 系统设计思想

1.2.1 基于三层架构模型

本系统将把部分业务层代码放到自定义控件内,ASPX页面主要负责参数的传递,以及将各种数据显示出来;而自定义控件内的逻辑层封装了购物车、产品展示等功能;数据层中建立了一个数据连接类,封装了对数据库的基本操作方法。它们之间的逻辑关系如下图1-1所示:

1.2.2 系统安全性保障

(1)数据库服务器和Web服务器的设置:出于电子商务安全性的考虑,可以将数据库服务器和Web服务器分别配置在不同的服务器,设置防火墙,限制外网对数据库服务器内部网络的访问,即只能对Web服务器进行访问,从而提高系统的安全性。

(2)数据库内容安全性考虑:因考虑到即使设置了防火墙,仍然有可能被人利用系统的漏洞等黑客攻击方法获取数据库中的数据,所以为了充分保护个人隐私尤其是密码保护意识薄弱的用户(喜欢长期使用唯一字串的密码),在用户密码部分,采用MD5或SHA1这种不可逆的加密算法进行加密,从而加强保护。

(3)对非法输入字串的过滤功能:当用字符串来组织SQL,如果查询语句中含有单引号,而SQL语句又以单引号为分界符,从而容易截断SQL字符串,引发错误。因此要将单引号过滤掉,或者替换为两个单引号(SQL语句中用两个单引号表示一个单引号),这里只需使用Replace函数即可达到目的。

1.2.3 代码复用

本系统中使用了较好的代码复用机制,避免重复开发和保留投资,复用本系统中已经使用的代码和以前项目经验积累的代码,如数据库访问类、非法输入检测类等。这种思想最突出的表现在制作自定义用户控件(ascx),并在重复用到的aspx页面中只需拖放组装即可,大大提高了开发的速度和效率。

1.2.4 输出缓存技术

此技术是针对电子商务的特点对访问量较大业务逻辑较为复杂的网站的一种优化策略。根据缓存的原理,服务器的响应速度要大于纯HTML页面的响应速度。因为输出缓存是将ASPX页面执行之后生成的HTML页面缓存在内存中,如果有相同请求就可直接发送内存中的页面,而HTML页面存储在硬盘上效率显然不高。

1.3 功能模块设计

1.4 系统编码设计

代码是代表系统中客观存在的事物名称、属性或状态的符号。鉴于现代管理活动中产生的数据量大,信息种类繁多的特点,为了满足各种管理职能和各个管理层次对信息的需求,必须强调对分类的整理,才能更有效地利用信息。代码设计就是信息分类的具体表现,将系统中具有某些共同属性或特征的信息归并到一起,用一些便于计算机或人来识别和处理的符号来表示各种信息。

为了编程且方便记忆,本系统均采用英文缩写,作为该项的代码。例如:字段表中“PInfo”表示商品信息表,又如每个页面的命名采用模块名加功能名的方式,管理员登陆页面是AdminLogin.aspx,Admin.aspx。

1.5 系统运行架构和扩展

根据系统的功能,可将Web应用程序分为管理界面和客户界面。根据应用环境的不同,可以分为以下三种:

(1) 小型应用:可以采用Web服务器与数据库服务器共用一台计算机的方案,数据库可以采用Access或SQL Server。

(2) 中型应用:可以采用Web服务器与数据库分用两台计算机的方案,数据库可采用SQL Server或Oracle。

(3) 大型应用:可以采用多台Web服务器集群的方案,数据库采用SQL Server或Oracle。

对于本例可采用中型应用,系统运行架构解决方案如图1-4所示。

2 数据库设计

2.1 数据库需求分析

2.1.1 数据库结构功能需求

根据前述系统总体设计要求,总结出如下数据库结构功能需求:

(1)用户分为匿名用户,会员用户和管理员。

(2)注册用户登录后可以维护自己的个人信息,并且在向网站发出订单时会自动填写自己的联系信息。

(3)图书按照内容类别、出版社来分类。

(4)一个用户可以购买多本各种图书。

(5)一个用户对应多张订单。

(6)订单有多种汇款方式。

(7)购物帮助功能。

(8)要分别统计销售状况,包括哪类图书,哪本图书,以及哪个价格范围热销。

(9)管理员可以查看登录记录。

2.1.2 数据项数据结构设计

经过上述系统功能分析和需求总结,考虑到将来功能上的扩展,设计如下所示的数据项和数据结构。

(1)管理员信息,包括的数据项:帐号,密码。

(2)注册用户(会员),包括的数据项:用户ID,用户名,密码等。

(3)图书,包括的数据项:图书编号,图书名称,内容简介等。

(4)图书类别,包括的数据项:类别编号,类别名。

(5)出版社, 包括的数据项:出版社ID,出版社名。

(6)订单列表,包括的数据项:订单列表编号,用户编号,下单时间,联系方式等。

(7)购物帮助,包括数据项:问题ID,问题标题,问题答案和单击次。

(8)付款方式,包括的数据项:付款方式编号,付款方式。

(9)管理员登录记录,包括的数据项:登录记录ID,登录所用用户名,登录时间,成功标识,登录IP。

(10)图书热销类别,包括的数据项:编号,类别编号,数量,时间(以月为单位)。

(11)图书价格范围热销,包括的数据项:编号,价格范围(0:0~50,1:51~100,2:101~200,3:201~300,4:301~400,5:400以上)。

2.2 数据库概念设计

本系统设计规划出的实体有:管理员信息实体,注册用户(会员)信息实体,图书实体,图书类别实体,订单列表实体和常见问题实体等。

实体之间的E-R关系图如图2-1所示:

(1)管理员信息实体E-R图如图2-2所示:

(2)注册会员信息实体E-R图如图2-3所示:

(3)图书实体E-R图如图2-4所示:

(4)图书类别E-R实体E-R图如图2-5所示:

(5)订单详细信息实体E-R图如图2-6所示:

(6)常见问题实体E-R图如图2-7所示:

(7)付款方式实体E-R图如图2-8所示:

(8)产品热销排行榜实体E-R关系图如图 2-9所示:

注意: 出版社热销和价格范围热销排行榜实体与此类似,这里不再重复绘制示意图。

2.3 数据库逻辑设计

在线图书销售系统数据库中各个表的设计结果如下面四个表所示。每个表格表示在数据库中的一个表。注意:ASP.NET2.0的成员资格和角色管理所需要的表没有列出。

表 2-1 管理员登录信息表(LogRecord)

表 2-2 用户信息表

表 2-3 图书信息表(BookInfo)

表 2-4 订单表(OrderList)

2.4 附加并关联ASP.NET成员资格数据库

本项目实例在将使用ASP.NET提供程序模型即MemberShip成员资格管理和RoleManger角色管理,用ASP.NET自带的身份认证系统实现用户管理,并作相应自定义扩展以满足实际需要。具体方法如下:

(1)将成员资格数据库建立在SQL Server 2000上,做法为:启动“Visual Studio命令提示”进入命令行状态之后输入:Aspnet_regsql -E -d[数据库名]-A all或者在地址栏中输入:(x代表操作系统根目录)

X:WINDOWSMicrosoft.NETFrameworkv2.0.50727aspnet_regsql.exe

启动ASP.NET SQL Server 安装向导按照图形化界面提示导入相关数据库。最终被建立到项目数据库中的ASP.NET2.0数据库包含11张表格,它将提供ASP.NET 2.0的许多特性与服务。

(2)在Web.config中设置MemberShipProvider和RoleProvider节

成员资格管理针对Web应用,应将整个方案的认证模式改为“Forms”(窗体模式),并默认为“Windows”(本地系统模式),在此基础上还要告诉编译器已启用提供程序模型,配置Web.config节点信息如下:

<--示例代码-->

(3)建立成员资格数据表与系统自身用户信息表的关联

扩展MemberShip加入自定义数据的方法一直很有争议,本实例采用在创建的用户详细信息表MemberInfo中添加一个uniqueidentifier类型的字段的方法,存储asp_Users表中的UserID值,设置外键关联。

小结

在明确系统设计目标的基础上,提出整个系统设计的思想——三层开发模式(表示,业务和数据层),以及具体开发过程中的具体指导思想,如代码复用,输出缓存技术和编码设计,进一步优化系统设计,便于后期维护和扩展,并规划设计了系统数据库的结构。良好的数据存储结构和编程结构一样都能大幅提高系统的效率,因此设计上要多加规范和优化。另外要注意的是,使用ASP.NET2.0的新增特性,如成员资格管理,还要在建好的项目数据库上附加ASP.NET内置数据库。

参考文献:

[1]刘海蓉.ASP.NET开发网上图书销售系统[J].长春师范学院学报,2009,(12).

[2]王红霞.网上书店应用系统的设计与实现[D].南京:南京理工大学,2007.

[3]范淳.对电子商务中网上购书系统的研究与开发[D].成都:西南交通大学,2001.

[4]萨师煊,王珊.数据库系统概论[M].北京:高等教育出版社,2006.

猜你喜欢
数据项管理员实体
我是小小午餐管理员
基于相似度的蚁群聚类算法∗
我是图书管理员
我是图书管理员
可疑的管理员
前海自贸区:金融服务实体
非完整数据库Skyline-join查询*
基于Python的Asterix Cat 021数据格式解析分析与实现
实体的可感部分与实体——兼论亚里士多德分析实体的两种模式
两会进行时:紧扣实体经济“钉钉子”