999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

數(shù)據(jù)庫觸發(fā)器技術(shù)在Web軟件中的應(yīng)用

2011-05-17 09:08:54魏權(quán)利李麗萍
關(guān)鍵詞:銷售數(shù)據(jù)庫

魏權(quán)利,李麗萍

(青島科技大學(xué) 信息學(xué)院,山東 青島 266061)

隨著Internet技術(shù)的迅速發(fā)展和信息共享需求的不斷提高,數(shù)據(jù)庫技術(shù)和Web技術(shù)的結(jié)合日趨緊密,在使用瀏覽器/服務(wù)器結(jié)構(gòu)的網(wǎng)絡(luò)應(yīng)用軟件開發(fā)時,充分利用觸發(fā)器等數(shù)據(jù)庫技術(shù),可以避免在網(wǎng)絡(luò)上傳輸大量的無用信息,極大地提高系統(tǒng)工作效率。本文重點介紹了在健身房會員管理Web應(yīng)用軟件中,觸發(fā)器技術(shù)的實際應(yīng)用。

1 觸發(fā)器的工作原理

1.1 觸發(fā)器的功能

觸發(fā)器是存儲在數(shù)據(jù)庫中的獨立對象,是現(xiàn)代數(shù)據(jù)庫管理系統(tǒng)中,用于響應(yīng)數(shù)據(jù)變化的一種機制,是實現(xiàn)數(shù)據(jù)維護規(guī)則的有效機制。它是一種實施復(fù)雜的完整性約束的特殊存儲過程,是經(jīng)過預(yù)編譯的SQL語句的集合[1]。當(dāng)對它所保護的數(shù)據(jù)進行操作(包括插入、刪除、更新)時可自動激活,防止對數(shù)據(jù)進行不正確的、未授權(quán)的或不一致的更改。在Web應(yīng)用程序中使用觸發(fā)器技術(shù),使相應(yīng)的數(shù)據(jù)處理工作在數(shù)據(jù)庫服務(wù)器上完成。這可充分發(fā)揮數(shù)據(jù)庫服務(wù)器的功能,減少網(wǎng)絡(luò)上的堵塞,提高系統(tǒng)的運行效率。

1.2 觸發(fā)器的工作原理

在設(shè)計數(shù)據(jù)庫觸發(fā)器時,需要定義點火觸發(fā)器的數(shù)據(jù)表,并且運行時數(shù)據(jù)庫服務(wù)器還要為每個觸發(fā)器創(chuàng)建兩個臨時的專用邏輯表:inserted表和deleted表。這兩張臨時表由系統(tǒng)維護,用戶不能直接對其進行操作,存放在服務(wù)器的內(nèi)存中。臨時表的數(shù)據(jù)結(jié)構(gòu)與點火觸發(fā)器數(shù)據(jù)表的數(shù)據(jù)結(jié)構(gòu)相同。當(dāng)用戶對指定的數(shù)據(jù)表進行操作時,DBMS將自動執(zhí)行在相應(yīng)觸發(fā)器中的SQL語句。觸發(fā)器完成本次觸發(fā)任務(wù)后,這兩張臨時表即被刪除[2]。

inserted表由于存放的是執(zhí)行insert或update語句,需要而向該觸發(fā)器作用的數(shù)據(jù)表(也可以是點火觸發(fā)器的數(shù)據(jù)表)中插入所有新行。在執(zhí)行插入或更新數(shù)據(jù)表的同時,也將新的行添加到inserted表中。因此,inserted表的內(nèi)容是激活觸發(fā)器的數(shù)據(jù)表中新行的拷貝。

deleted表由于存放的是執(zhí)行delete語句,而要從該觸發(fā)器作用的數(shù)據(jù)表中刪除的所有行。在執(zhí)行刪除操作時,被刪除的行從激活觸發(fā)器的數(shù)據(jù)表中被移動到deleted表中。因此deleted表的內(nèi)容和激活觸發(fā)器的數(shù)據(jù)表不會有相同的行。

1.3 觸發(fā)器的使用

觸發(fā)器也是一個數(shù)據(jù)庫對象,它與三部分的內(nèi)容有關(guān):定義數(shù)據(jù)庫中用于點火觸發(fā)器的數(shù)據(jù)表(或視圖)、激活觸發(fā)器的數(shù)據(jù)操作語句和觸發(fā)器要采取的動作。

觸發(fā)器可以由Transact-SQL語句創(chuàng)建,也可以通過企業(yè)管理器創(chuàng)建。以Transact-SQL語句創(chuàng)建為例,使用CREATE TRIGGER語句,其語法格式如下:

CREATE TRIGGER trigger_name ON table

FOR[INSERT,UPDATE,DELETE]

ASSql_statement

其中:

trigger_name:給出了觸發(fā)器的名稱;

Table:定義觸發(fā)器的表(或視圖);

FOR[INSERT,UPDATE,DELETE]:說明了激活觸發(fā)器的數(shù)據(jù)操作語句;

Sql_statement:定義了觸發(fā)器要采取的動作。

一張表最多可以建立三類觸發(fā)器,即插入觸發(fā)器、修改觸發(fā)器和刪除觸發(fā)器。一張表可以允許建立多個觸發(fā)器,但一個觸發(fā)器只能作用于一張表上,但一個觸發(fā)器可以包含很多動作,執(zhí)行很多功能。

2 觸發(fā)器技術(shù)在Web程序中的應(yīng)用

在開發(fā)健身房會員管理系統(tǒng)Web應(yīng)用軟件中,采用了觸發(fā)器技術(shù)。會員的管理通過會員卡的方式進行,根據(jù)健身房會員管理軟件的數(shù)據(jù)處理要求,在新會員卡表、會員卡表、會員刷卡明細(xì)表這三張數(shù)據(jù)表上設(shè)計完成特定功能的插入式觸發(fā)器。

2.1 新卡號生成觸發(fā)器(addno_trg)

新會員卡表(Me_NewCard_table)用于管理待銷售的各種類型的新會員卡,管理的數(shù)據(jù)字段包括卡類型、銷售方式、數(shù)量、開始和結(jié)束卡號等信息。為了動態(tài)生成結(jié)束卡號和8位數(shù)據(jù)字符的連續(xù)卡號,在該數(shù)據(jù)表上設(shè)計新卡號生成觸發(fā)器,功能設(shè)計思想是根據(jù)新會員卡表中提供的卡初始號和所需生成的會員卡數(shù)量動態(tài)生成結(jié)束卡號。其次,將開始和結(jié)束卡號做為while語句的循環(huán)控制條件動態(tài)地生成連續(xù)的卡號并插入到新會員卡號表(Me_NewCard_No_table)中,供會員卡銷售選號使用。當(dāng)設(shè)置新會員卡頁面進行提交將表單數(shù)據(jù)插入數(shù)據(jù)庫時,該觸發(fā)器點火完成預(yù)定功能。當(dāng)卡的數(shù)量較多時,使用觸發(fā)器技術(shù)便于管理,可有效減少錯誤。主要程序段如下:

2.2 會員卡銷售觸發(fā)器(Sell_trg)

會員卡表(MemberCard_Table表)用于管理已銷售的各種類型的會員卡,管理的數(shù)據(jù)包括會員和所購會員卡的信息。其中會員卡使用有效期字段需在會員購卡時生成。售卡時,頁面根據(jù)預(yù)銷售的卡類型,從新會員卡號表中查詢卡號數(shù)據(jù)并將結(jié)果綁定在Web服務(wù)器DropList控件上供用戶選擇。為了保證會員卡信息的一致性和完整性,建立會員卡銷售觸發(fā)器,設(shè)計思想是根據(jù)銷售的會員卡類型和銷售日期動態(tài)生成卡有效期,并添入會員卡表的有效期字段中。在觸發(fā)器定義的SQL語句中,根據(jù)所銷售的會員卡類型使用DATEADD函數(shù),生成卡有效期。若是年卡,則在當(dāng)前銷售時間上加一年;若是半年卡,則在銷售時間上加六個月;季卡、月卡同理。其次,從新會員卡設(shè)置表中刪除所銷售的相關(guān)會員卡卡號,以此保證卡號數(shù)據(jù)使用的唯一性。關(guān)鍵程序代碼如下:

2.3 會員卡有效期驗證觸發(fā)器(CheckCard_trg)

會員通過使用已購置的會員卡進行消費。在前臺辦理進入手續(xù),通過刷卡操作,對所持會員卡進行有效期的驗證。會員刷卡明細(xì)表(Me_ConsumDetail_table)用于管理會員的消費信息,數(shù)據(jù)字段包括會員卡號、刷卡時間等信息。在該數(shù)據(jù)表上建立會員卡有效期驗證觸發(fā)器。其功能設(shè)計思想是:當(dāng)會員刷卡消費時根據(jù)會員卡卡號查詢會員卡表,讀取該會員卡的卡類型、卡有效時間,獲取當(dāng)前消費時間(Me_Consum_Date)等信息。頁面提交將上述數(shù)據(jù)插入到會員刷卡明細(xì)表時,該觸發(fā)器點火,執(zhí)行檢查會員卡有效期的SQL語句,根據(jù)獲取的當(dāng)前消費時間與卡有效時間進行比較。當(dāng)大于有效期時,利用SQL Server提供的事務(wù)管理功能,通過事務(wù)控制語句rollback transaction取消此次刷卡消費,并調(diào)用raiserror函數(shù)拋出已過期異常信息。觸發(fā)器主要程序如下:

為了能夠捕獲并處理觸發(fā)器拋出的異常信息,在global.asax文件中的Application_Error事件中編寫出錯時處理事件程序,設(shè)計思想是使用ASP.NET的Server對象、GetLastError()方法獲取異常,用 Response對象向瀏覽器輸出使用javascript客戶端腳本語言編寫的提示信息,程序如下:

本設(shè)計完成的三個觸發(fā)器之間關(guān)系密切,新卡號生成觸發(fā)器點火觸發(fā)后,動態(tài)生成相關(guān)類型的結(jié)束卡號和保存在新會員卡號表中連續(xù)的卡號集合;當(dāng)進行會員卡銷售時,從新會員卡號表中選定卡號,點火會員卡銷售觸發(fā)器,自動為選定的會員卡建立卡有效期(有效使用時間),同時從新會員卡號表中刪除該卡號;當(dāng)會員使用會員卡刷卡消費時,會員卡有效期驗證觸發(fā)器點火觸發(fā),完成有效期的驗證,如果過期,頁面彈出警告對話框。在健身房會員管理軟件中,使用數(shù)據(jù)庫觸發(fā)器技術(shù),保證了會員卡信息從制卡、銷售到使用過程中數(shù)據(jù)的一致性和完整性。而且,這種一致性和完整性是實時和同步的,有效地提高了前臺工作人員的工作效率。軟件設(shè)計符合用戶要求,操作簡便,運行正常。

[1]崔巍.數(shù)據(jù)庫系統(tǒng)及應(yīng)用[M].北京:高等教育出版社,2008.

[2]周漢平.數(shù)據(jù)庫設(shè)計及其應(yīng)用程序開發(fā)[M].北京:清華大學(xué)出版社,2010.

猜你喜歡
銷售數(shù)據(jù)庫
這四個字決定銷售成敗
數(shù)據(jù)庫
財經(jīng)(2017年15期)2017-07-03 22:40:49
數(shù)據(jù)庫
財經(jīng)(2017年2期)2017-03-10 14:35:35
數(shù)據(jù)庫
財經(jīng)(2016年15期)2016-06-03 07:38:02
數(shù)據(jù)庫
財經(jīng)(2016年3期)2016-03-07 07:44:46
數(shù)據(jù)庫
財經(jīng)(2016年6期)2016-02-24 07:41:51
數(shù)據(jù)庫
財經(jīng)(2010年20期)2010-10-19 01:48:32
銷售統(tǒng)計
中國化妝品(2003年6期)2003-04-29 00:00:00
銷售統(tǒng)計
中國化妝品(2003年3期)2003-04-29 00:00:00
銷售統(tǒng)計
中國化妝品(2003年1期)2003-04-29 00:00:00
主站蜘蛛池模板: 福利视频99| 国产精品无码一二三视频| 国产在线视频欧美亚综合| 日韩黄色大片免费看| 亚洲精品无码成人片在线观看 | 中文字幕日韩欧美| 91破解版在线亚洲| 手机看片1024久久精品你懂的| 91小视频在线观看| 久久这里只有精品免费| 欧美日韩午夜| 91小视频版在线观看www| 国产在线精品美女观看| 亚洲欧美自拍一区| 幺女国产一级毛片| 亚洲欧美日韩中文字幕在线一区| 国内精品小视频在线| 一级毛片免费高清视频| 一级做a爰片久久毛片毛片| 亚洲色图另类| 亚洲精品va| 亚洲天堂日韩av电影| 波多野结衣一区二区三区AV| 天天做天天爱夜夜爽毛片毛片| 国产69囗曝护士吞精在线视频| 亚洲天堂网视频| 国产成人免费高清AⅤ| 国产免费人成视频网| 成色7777精品在线| 色网站免费在线观看| 国产高清无码第一十页在线观看| 成人国产精品网站在线看| 成人在线欧美| 免费人成视网站在线不卡| 亚洲av片在线免费观看| 一区二区欧美日韩高清免费| 亚洲成年网站在线观看| 国产人在线成免费视频| 亚洲欧洲日韩综合色天使| 最新亚洲av女人的天堂| 国产精品99久久久久久董美香| 国产成人亚洲日韩欧美电影| 九九这里只有精品视频| 亚洲天堂视频在线免费观看| 黄片一区二区三区| 欧美成人影院亚洲综合图| 亚洲视频欧美不卡| 又污又黄又无遮挡网站| 一区二区三区四区日韩| 国产95在线 | 国产精品分类视频分类一区| 久久婷婷五月综合色一区二区| 一本大道香蕉久中文在线播放| 久久久久久久蜜桃| 一级一级特黄女人精品毛片| 久久成人国产精品免费软件| a级毛片免费看| 国产噜噜噜| 国产69精品久久| 欧美精品三级在线| 精品成人免费自拍视频| 亚洲精品午夜天堂网页| 国产a网站| 亚洲天堂777| 国产在线无码av完整版在线观看| 国产高潮视频在线观看| 欧美成人国产| 婷婷五月在线| 国产午夜福利在线小视频| 亚洲精品欧美重口| 欧美日韩久久综合| 欧美色亚洲| 国产剧情伊人| 国产精品无码AV中文| 亚洲精品亚洲人成在线| 激情亚洲天堂| 色综合婷婷| 在线中文字幕日韩| 欧美高清日韩| 日韩无码视频专区| 中文字幕亚洲综久久2021| 再看日本中文字幕在线观看|