研究触发器触发器在电子商务系统中运用设计

更新时间:2024-04-11 点赞:14754 浏览:60684 作者:用户投稿原创标记本站原创

摘 要:详细分析了触发器的概念、分类及工作过程,在此基础上,以电子商务系统为例设计了SQL Server 2008系统下的触发器。结论证明,在应用系统中合理的使用触发器不仅能够保证数据的完整性和一致性,同时可以实现复杂的业务逻辑,提高系统的执行效率。
关键词:触发器 SQL Server 电子商务系统

一、触发器相关知识

(一)触发器的概念

触发器可以称为一种特殊类型的存储过程,与存储过程不同的是,它是在执行语言事件时被自动激活执行,而存储过程必须通过用户或应用程序显式的调用才能执行。触发器除了可以实现与数据库约束相类似的不同表中相关数据的引用完整性与一致性以外,还可以强制实施复杂的业务逻辑,如:复杂的跨多表的数据业务级别的约束,在数据库应用系统中可以替代大量的后台判断代码,从而提高程序的执行效率。

(二)触发器的分类

按照触发事件的不同,可以把SQL Server 2008系统提供的触发器分成两大类型,即DDL触发器和DML触发器。DDL触发器是当服务器或数据库中发生数据定义语言(DDL)事件,如CREATE、ALTER、DROP数据库对象等操作时执行的触发器;DML触发器是当数据库服务器中发生数据操纵语言(DML)事件,如INSERT、UPDATE、DELETE时执行的触发器。
按照激活触发器的操作语句的不同,可将DML触发器具体分成3种类型:INSERT触发器、UPDATE触发器和DELETE触发器,当向表中插入数据、更新数据或删除数据时激活相应类型的触发器,当然,这三种触发器也可以组合使用。(注意:因为SELECT语句并没有修改表中的数据,所以SELECT语句不能激活触发器。)

(三)触发器的工作过程

SQL Server 2008为每个触发器创建两个临时表:INSERTED表和DELETED表,它们存在于内存中。这两个表的结构与被触发器作用的表的结构相同,触发器执行后,这两个临时表也会被删除。两个表存放的数据如表1所示。

二、触发器在电子商务系统中的应用

(一)电子商务系统简介

电子商务系统基于浏览器/服务器应用方式,该系统下买卖双方可以在不谋面的情况下即能进行各种商贸活动,实现消费者的网上购物、商户之间的网上交易和在线电子支付等各种业务活动[3]。电子商务系统可以实现用户浏览商品、查询商品、将商品放入购物车、下订单、管理员管理商品、管理订单和系统管理等功能。

(二)电子商务系统中触发器的设计

通过分析发现,该业务需要同时完成4个操作:向订单表中插入新订单信息、向订单明细表中插入新订单的详情、为对应的用户增加积分值、修改相应商品的库存量和销售量。为了简化应用程序的操作,在此使用存储过程完成向订单表中插入新订单信息的操作(该操作省略),为订单明细表创建INSERT触发器,当向订单明细表中插入新订单的详情时同时完成用户积分的修改、对应商品库存数量和销售量的修改操作。
根据业务分析,需要在订单明细表上创建INSERT触发器,代码如下:
CREATE TRIGGER TR_INSERT_ORDERDETAILS
ON 订单明细表
AFTER INSERT
AS
BEGIN
DECLARE @用户 varchar(20),@商品编号 varchar(30),@商品数量 int,
@积分 int
源于:职称论文www.618jyw.com
SELECT @用户=用户,@商品编号=商品编号,
@商品数量=商品数量,@积分=积分
FROM INSERTED
UPDATE 用户表 SET 总积分 = 总积分 + @积分 WHERE 用户 = @用户
UPDATE 库存表 SET 销售量 = 销售量 + @商品数量, 库存量 = 库存量 - @商品数量 WHERE 商品编号 = @商品编号
END
三、结论
通过在电子商务系统中使用触发器来完成负责的业务逻辑,使得数据库的设计更合理,同时提高了应用系统的执行效率。但同时也要认识到,过多的使用触发器将会增加应用系统内部结构的复杂性,加大各个业务的关联,导致系统维护的难度。因此,在应用系统开发中,要依据实际需求,合理的设计和使用触发器,使其发挥应有的作用。
参考文献:
毛应爽,赵慧玲,孟宪颖.SQL Server 2005程序设计与管理基础同步实训教程[M].北京:清华大学出版社,2009:213.
肖海蓉.触发器技术在数据库系统开发中的应用研究[J].电脑开发与应用,2011,24(7):36-37.
[3] 陈密芳.网站开发项目教程[M].北京: 中国铁道出版社, 2010:1-3.
相关文章
推荐阅读

 发表评论

共有3000条评论 快来参与吧~