触发器在房产管理系统中的应用 |
2012-08-10 11:31 作者:李 谦 来源:硅谷网 HV: 编辑: 【搜索试试】
|
|
硅谷网8月10日消息 《硅谷》杂志2012年第13期刊文称,触发器是一种特殊的存储过程,它的主要作用是实现由主键和外键所不能保证的、复杂的参照完整性和数据的一致性,房产管理信息系统是企业信息化中的一个重要部分。随着计算机技术和网络技术的不断发展,如何设计并实现出高效的房产管理信息系统成为当务之急,而触发器正是有效实现数据操作的一种手段。首先介绍房产管理系统的系统设计和数据库设计,接着介绍多个触发器的设计与实现;最后给出这种方法的实现效果。
随着科学技术的不断提高,计算机技术日渐成熟并已进入人类社会的各个领域且发挥着越来越重要的作用;同时,随着人们生活水平不断提高,市场上房屋销售置换进行的如火如荼,因此,利用计算机先进的管理手段,改变原有的陈旧的房产管理方式,将房屋楼盘的销售推向“自动化”和“无纸化”逐渐成为信息化建设的一个重要目标。设计和开发房产管理系统成为了重中之重,而如何在系统中实现数据的级联操作和强化条件约束也是需重点解决的问题之一。本文将详述如何通过触发器来解决此问题。
1触发器的概念及作用
触发器是一种特殊的存储过程,它在执行语言事件执行时自动生效。本文重点介绍和使用的是DML触发器。DML触发器是当数据库服务器中发生数据操作语言(DML)事件时要执行的操作。DML事件包括对表或视图发出的UPDATE、INSERT或DELETE语句。DML触发器用于在数据被修改时强制执行业务规则,以及扩展约束、默认值和规则的完整性检查逻辑。
2房产管理系统的设计
依据前期调研及需求分析,房产管理系统设计需要实现的功能有用户管理、销售管理和房屋管理。
用户管理主要是登录管理和权限管理;登录管理主要是根据用户输入的用户名和密码判断该用户是否是合法用户,并且根据当前用户的权限分配适当的界面;权限管理主要是根据用户在部门中的角色分配不同等级的权限。
销售管理主要是进行购房客户登记、客户管理、房屋销售和销售报表的制作。
房屋管理:主要对楼盘、楼房和房屋信息进行增加、删除、修改和各种条件查询。
3数据库设计
数据库是管理信息系统的后台核心,数据库结构是否合适决定着应用系统的好坏;经过对房产管理的调研和分析,设计主要数据表如下:
楼盘表:记录整个楼盘的相关信息,例如楼盘名称、地址、楼房幢数、房屋套数等;
楼房表:记录各幢楼房的相关信息:诸如楼房幢号、房屋套数、建成日期等;
房屋表:记录各房屋的相关信息:例如单元号、房号、房型、房价以及当前状态等;
客户表:记录有购房意向的客户信息,例如姓名、联系电话、身份证号码、需求房型、需求面积、接待者等;
客户信用等级表:记录客户的信用等级,信用等级较低的将影响购房;
销售表:记录房屋的销售情况,例如购房的客户姓名,购买的房屋、付款情况等。
数据库整体关系图如下图所示:
图1数据库关系图
4触发器设计与实现
当客户购房时,需要根据该客户的信用等级来判断是否把房屋销售给他,假设开发商调研指定政策如下:不允许将房屋销售给信用等级低于3级的客户,那么实现此效果的触发器如下所示:
CREATETRIGGERTg_NumberON销售表
AFTERINSERT
AS
DECLARE@creditratingnchar(10)
SELECT@creditrating=信用等级
FROM客户信用等级表innerjoininserted
on客户信用等级表.身份证=inserted.身份证
IF(@creditrating<3)
BEGIN
RAISERROR('Thisvendor''screditratingistoolowtoacceptnewpurchaseorders.',16,1)
ROLLBACKTRANSACTION
END
房屋销售成功后,相应的销售表中已有新的行插入,为实现数据完整性和一致性,相关后续操作有:
1)将房屋表中相应的该房屋的状态由“待售”改为“售出”;
2)将客户表中的购房状态由“预定”改为“购房”;
3)该楼盘的可售房屋套数减1。
实现这些操作的触发器分别如下所示:
1)CREATETRIGGERTg_SaleRoom
ON销售表
AFTERINSERT
AS
BEGIN
setnocounton
update房屋表set房屋表.状态='售出'
from房屋表innerjoininserted
on房屋表.ID=inserted.房屋ID
END
2)CREATETRIGGERTg_SaleGuest
ON销售表
AFTERINSERT
AS
BEGIN
setnocounton
update客户表set客户表.购房状态='购房'
from客户表innerjoininserted
on客户表.ID=inserted.客户
END
3)createtriggerTg_SaleBuilding
on销售表
afterinsert
as
begin
setnocounton
update楼房表setBuilding.房屋套数=Building.房屋套数-1
from楼房表innerjoininserted
on楼房表.ID=inserted.楼房
end
上述的四个触发器创建成功后,若客户信用等级表中有某客户的信用等级为2,等级较低,则购房操作将不会成功执行,其它的三个触发器也不会被成功触发。
作者简介:
李谦(1963-),讲师,研究方向:嵌入式开发。(原文载于《硅谷》杂志2012年第13期,硅谷网及《硅谷》杂志版权所有,未经允许禁止转载)
|
|
|
|
【对“触发器在房产管理系统中的应用”发布评论】 |
版权及免责声明:
① 本网站部分投稿来源于“网友”,涉及投资、理财、消费等内容,请亲们反复甄别,切勿轻信。本网站部分由赞助商提供的内容属于【广告】性质,仅供阅读,不构成具体实施建议,请谨慎对待。据此操作,风险自担。
② 内容来源注明“硅谷网”及其相关称谓的文字、图片和音视频,版权均属本网站所有,任何媒体、网站或个人需经本网站许可方可复制或转载,并在使用时必须注明来源【硅谷网】或对应来源,违者本网站将依法追究责任。
③ 注明来源为各大报纸、杂志、网站及其他媒体的文章,文章原作者享有著作权,本网站转载其他媒体稿件是为传播更多的信息,并不代表赞同其观点和对其真实性负责,本网站不承担此类稿件侵权行为的连带责任。
④ 本网站不对非自身发布内容的真实性、合法性、准确性作担保。若硅谷网因为自身和转载内容,涉及到侵权、违法等问题,请有关单位或个人速与本网站取得联系(联系电话:01057255600),我们将第一时间核实处理。
|
|
|
|