摘 要: 介绍了基于B/S模式开发会员管理系统" title="会员管理系统">会员管理系统" title="会员管理系统">会员管理系统Web应用软件的实现原理和关键技术,提出了会员管理系统Web应用软件的设计方案,阐述了开发软件所采用的ASP.NET技术及数据库触发器技术在Web应用程序中的应用,重点论述了根据实际问题设计数据库触发器的实现方法以及在软件功能中设计实现相关数据库触发器的点火条件,实现触发器的预定功能。使用ASP.NET + MS SQL技术开发完成该系统的全部功能。
关键词: B/S结构;ASP.NET技术;触发器技术;管理系统;数据库
健身房会员管理系统Web应用软件采用B/S体系结构,使用ASP.NET服务器脚本技术和数据库触发器技术,以MS SQL Server 2000为后台数据库,结合HTML语言和JavaScript 脚本语言设计开发会员管理功能模块,实现会员卡管理、前台刷卡等功能。
1 系统的设计思想
1.1 会员管理系统的基本结构
采用B/S体系结构。B/S结构是一种由浏览器、Web服务器和数据库服务器组成的3层模式,如图1所示,基于TCP/IP协议,只需开发和维护服务器端应用程序,无需开发客户端程序。在这种模式下,由于数据存放在数据库服务器上,用户只需通过浏览器进行交互操作提交表单,用Form表单的形式POST或GET的方法实现对数据库的操作请求。其工作过程为:当用户在浏览器上填好表单并提交HTTP请求时,Web服务器根据表单内容分析解释浏览器请求,如果请求的内容需要访问数据库服务器,则调用ADO.NET由它来完成这个操作,然后将结果返回Web服务器,Web服务器进行格式处理后返回浏览器并显示结果。
会员管理系统的运行环境选择Windows 2000 Server 为网络服务器操作系统平台,Web服务器采用Windows 2000 Server 组件IIS(Internet Information Server).NET框架开发工具包(.NET Framework SDK)、Microsoft 数据库访问组件2.7 (MDAC2.7)。
数据库服务器采用MS SQL Server 2000数据库服务器软件,有非常灵活和安全的权限系统,数据类型丰富,可以设计最理想的数据结构。
客户浏览器操作系统平台采用Windows XP,浏览器为IE 5.0或以上版本。
1.2 采用的关键技术
1.2.1 ASP.NET技术
ASP.NET是一种编程框架,它在Web服务器上运行,动态地生成和管理Web窗体页。ASP.NET服务器端动态网页技术是.NET框架的一部分,是一种以.NET框架为基础开发网上应用程序的全新模式,在这个新模式下采用VB.NET、C#等程序设计语言开发应用程序。ASP.NET文件一般由2部分组成,第一部分是构成页面的HTML代码,在代码的第一行添加引用Code-behind(隐藏代码)的语句,该语句指明调用的服务器程序的文件名,以文件扩展名.aspx保存在IIS的发布目录下;第二部分由VB.NET或C#语言构成的服务器程序代码,它本身不能运行,由相应的.aspx文件调用。若使用VB.NET编程,Code-behind文件扩展名为.vb;使用C#编程,Code-behind文件扩展名为.cs。使用Code-behind技术实现了服务器端程序和HTML代码的彻底分离,使得程序结构清晰。ASP.NET文件采用编译后运行的方式,经过编译后的页面再次访问时就直接运行,运行速度提高。本软件使用C#作为编程语言。
ASP.NET的数据访问机制是采用ADO(Activex Data Object).NET访问数据库,它既能在与数据源连接的环境下工作,又能在断开与数据库连接的条件下工作。ADO.NET对象模型中有5个主要的组件,分别是Connection、Command、DataSet、 DataAdapter以及DataReader。其中DataSet数据集相当于内存中暂存的数据库,从数据源中获取数据后就断开了与数据源之间的连接。允许在DataSet中添加、删除、修改、查询、统计数据。DataAdapter作为DataSet 和数据源之间的桥接器,用于填充 DataSet和更新数据源。DataAdapter经常和DataSet一起配合使用。
1.2.2 数据库触发器技术
触发器是一种实施复杂的完整性约束的特殊存储过程,当对它所保护的数据进行操作(包括插入、删除、更新)时自动激活,防止对数据进行不正确、未授权或不一致的修改。SQL Server为每个触发器创建2个专用表:inserted表和deleted表,这是2张逻辑表,由系统维护,用户不能直接对其进行操作,存放在内存中,逻辑表的数据结构与被该触发器作用的表的数据结构相同。当用户对指定的表进行操作(插入、删除、更新)时,SQL Server将自动执行在相应触发器中的SQL语句。触发器工作完成后,这2张逻辑表即被删除。本软件创建3个触发器。
1.3 会员管理系统的功能设计
会员的管理通过会员卡的方式进行,系统功能设计如图2所示。
1.4 数据库的设计
1.4.1 数据表
根据系统管理的信息,建立用户表,包括用户名、权限、口令等字段;建立会员信息表,包含会员的基本信息及会员卡号、会员卡类型等信息;建立会员卡表,包含会员卡的基本信息且通过会员卡号与会员信息表建立一对一的关系;建立新会员卡表,包含卡种类、发行方式、发行量、开始号码、价值等数据项;建立新会员卡号表,定义各种类型会员卡的详细卡号;建立会员消费明细表,定义消费卡号、消费开始及结束时间等字段;建立卡名称、卡类型、国籍等字典数据表。
1.4.2 视图
定义会员刷卡信息列表数据视图。在会员信息表和会员卡表中以会员卡号且卡类型相同为条件,选择导出必要的数据。
1.4.3 触发器
(1)新卡号生成触发器(Addno_trg):在新会员卡表(Me_NewCard_table)中建立新卡号生成触发器,根据页面表单中提供的卡初始卡号和数量点火触发动态生成结束卡号,并将设置好的新会员卡的相关信息和该卡的所有已生成的连续卡号插入到新会员卡号表(Me_ NewCard_No_table)中。
(2)卡有效期生成触发器(Getvalue_trg): 在会员卡表(MemberCard_Table)建立卡有效期生成触发器,根据销售的会员卡类型和销售日期动态生成卡有效期,并添入到会员卡表(MemberCard_Table)有效期字段(Me_Card _ValidDate)中。在触发器定义的SQL语句中,使用DATEADD函数,根据所销售的会员卡类型生成卡有效期:若是年卡,则在销售时间上加一年;若是半年卡,则在销售时间上加六个月;季卡、月卡同理。同时,从新会员卡设置表(Me_NewCard_table)删除所销售的相关会员卡卡号,以保证卡号的一致性。
(3)会员卡有效期验证触发器(CheckCard_trg):在会员刷卡明细表(Me_ConsumDetail_table)上建立会员卡有效期验证触发器。该触发器是一个插入操作触发器,根据会员卡号查询会员卡表,读取该会员卡的卡类型、卡有效期、消费次数等信息。将会员卡有效期验证触发器插入到会员刷卡明细表时,执行检查会员卡有效期的SQL语句。卡有效期验证是利用SQL Server提供的事务管理功能实现,通过事务控制语句rollback transaction保证当会员卡的有效期过期时,调用raiserror函数给出过期提示。如果卡类型是次卡或是其他类型的卡,累计消费次数大于卡的额定次数时,将根据消费刷卡时获取的时间与卡有效时间比较,大于有效期时将执行卡有效期的SQL语句,抛出已过期异常信息。
2 系统主要功能的实现方法
2.1 用户登录认证功能
根据用户的工作性质,权限分为5级,用户名与相应权限绑定。当用户使用用户名和口令登录系统时,根据用户输入的登录信息,在数据库的用户表(PW_Table)中搜寻与此信息相匹配的记录,验证其合法性。如果用户合法,则将其相应权限存入Session变量;否则,返回登录页面,输出“用户名或密码错误!”。
2.2 会员卡管理功能
2.2.1 会员卡设置(Base_New_CT_In.aspx)
新会员卡设置功能用于设置各种预备销售的会员卡,表单提交信息包含会员卡个数、开始卡号、卡名称和卡类型等信息。系统从卡名称和卡类型数据字典库中查询数据并将结果绑定在Web服务器DropList控件上供用户选择,当页面进行提交后,将表单数据插入数据库新会员卡设置表(Me_NewCard_table)中,形成新的会员卡,同时新卡号生成触发器(Addno_trg)点火,将生成的连续卡号添加到新会员卡号表(Me_NewCard_ No_table)中,供会员卡销售选号使用。使用触发器技术,根据用户提供的开始卡号和预制卡的数量动态生成连续的卡号,便于管理,当卡的数量较大时,可有效地减少错误。
2.2.2 会员卡销售(Sell_Me_Input.aspx)
会员卡销售功能可根据已设置好的各种新会员卡销售给所需会员,同时将会员卡信息和会员的个人信息添加到数据库。软件设计中采用级联查询调用的方法将查询数据绑定在Web服务器DropList控件上,根据销售方式、会员卡名称和会员卡类型逐步确定会员需购置的会员卡当前存在的卡号,当页面提交后,将表单数据插入数据库会员卡表(MemberCard_Table表)时,卡有效期生成触发器(Getvalue_trg)点火,完成相应的功能。使用级联查询控件绑定和触发器技术,保证了会员卡信息的一致性和完整性。
2.3 前台刷卡
前台刷卡功能提供会员通过使用已购置的会员卡进行消费。会员使用会员卡在前台办理进入手续,通过刷卡操作,软件将检查会员卡的合法性(一卡一人)和使用有效期,检查通过,会员领取手牌和更衣柜号进入健身房活动,消费结束时,会员要办理离开手续,否则,卡不能再次使用。通过查询数据视图,使用GridView控件在网页上分页并按照刷卡时间排序显示已刷卡的会员卡号、会员姓名、卡类型、售卡日期、卡有效期以及刷卡时间等信息。会员卡的合法性是查询刷卡的会员卡号和会员卡类型在会员卡表中是否存在满足条件的记录,如果没有,则使用JavaScript给出信息提示框,说明会员卡非法。当检验会员卡合法后,软件将该会员卡的卡号、刷卡时间等信息插入到会员刷卡明细表时,会员卡有效期验证触发器点火,完成有效期的验证;如果会员卡过期,触发器会抛出异常信息。为了能够捕获并处理这个异常信息,在global.asax文件中的Application_Error 事件中编写出错时处理事件程序如下:
protected void Application_Error(Object sender, EventArgs e)
{ Exception LastError;
LastError = Server.GetLastError();
Response.Write(“