图2 数据库关系图
3.2存储过程与触发器
3.2.1存储过程 旅游开发与生态环境保护
存储过程是在数据库系统中,一组为了完成特定功能的SQL 语句集,经编译后存储在数据库中,如果该存储过程带有参数用户可以通过指定存储过程的名字并给出参数来执行它。
存储过程可以使得程序执行效率更高,安全性更好,例如:对物资信息、供货商信息、仓库信息的删除、更新和添加,在前台不需要再写SQL语句防止SQL注入;代码精简一致,一个存储过程可以用于应用程序代码的不同位置。除此之外,建立存储过程不会消耗太多的系统资源,因为过程只是在调用时才执行。
3.2.2触发器
触发器是一种特殊类型的存储过程,它不同于我们前面介绍过的存储过程。触发器主要是通过事件触发被执行的,而存储过程可以通过存储过程名字而被直接调用。当对某一表进行诸如Update、本文来自辣,文,论#文,网,毕业论文www.751com.cn 加7位QQ324.9114找源文Insert、Delete这些操作时,SQL Server就会自动执行触发器所定义的SQL 语句。由于本系统中有一些字段内容要不断变化,如:出库数目,库存物资数量等,为了能够保证数据的随时更新,在本系统中采用了一些触发器,例如:为了实现从物资库存信息表中对应行中的库存总数减去当前所出库或借出数目的功能,采用了在其对应表中分别创建触发器:trig_OutStoreGoods和trig_BRGoods来完成此数据的计算;为了完成将对应借出信息表中的借货数量减去当前归还的数量,全部归还完后,删除借出表中的信息,并将当前归还的物资数增加到对应栏的物资库存总数中的功能,采用在tb_ReturnGoods表建立由insert,update,delete触发和由insert,update触发的trig_REGoods触发器和trig_UpdateGoodsInfo触发器。
4.系统实现
4.1系统流程图
本系统是结合数据库而设计的,所以会有大量的有关与数据操作的代码,为了实现高效的代码编写、修改及复用,采用了类的封装,一个数据库连接类DataConn和一个数据库操作类DataOperate。在代码编写页面时,每个页面的代码基本上都可划分为数据绑定单元和动作响应单元这两个部分。为了增强对操作权限的控制,加强系统的安全性,在每个页面内的page_load函数中都加入了权限判断代码,根据权限的不同,赋予不同的操作。超级管理员拥有最大权限,可以访问任何页面:进入物资管理首页完成对物资的入库、出库、借出和归还,并对用户信息进行管理而普通用户只有查询和修改自己密码的权限。
具体流程如下图3所示:
上一页 [1] [2] [3] [4] [5] [6] 下一页