數據庫火車票銷售系統(tǒng)教材_第1頁
數據庫火車票銷售系統(tǒng)教材_第2頁
數據庫火車票銷售系統(tǒng)教材_第3頁
數據庫火車票銷售系統(tǒng)教材_第4頁
數據庫火車票銷售系統(tǒng)教材_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、長沙學院課程設計說明書題目火車票預定管理系統(tǒng)系(部)數學與計算機科學系專業(yè)(班級)姓名學號指導教師起止日期2016.05.16 05.27課程設計任務書課程名稱:數據庫系統(tǒng)原理課程設計 題目:火車票預訂管理系統(tǒng)1、某鐵路局火車票預訂管理系統(tǒng)需要如下信息: 車次信息:車次編號、出發(fā)地、目的地、出發(fā)時間、到站時間、火車類型、里程數,座位 數等。車票信息:座位號、價格、當前預售狀態(tài)、座位類型等。 客戶:姓名、聯系電話、身份證號碼等。業(yè)務員:姓名、工號。 其業(yè)務規(guī)則描述如下: 一個客戶可以預訂(退訂)多張火車票,但一張火車票只能被一個客戶預訂(退訂) 個業(yè)務員能銷售多張車票,但一張車票只被一個業(yè)務員銷

2、售。一輛列車包含多張車票,但 一張車票只屬于一輛列車。2、系統(tǒng)功能的基本要求: 按照一定條件查詢、統(tǒng)計符合條件的火車、車票、客戶信息等。例如火車車次查詢、時刻 表查詢、剩余座位數、同一路線可選火車信息、客戶購買歷史等,能夠在車票售出時更新 可用火車票數,模擬完成火車票訂票、退訂業(yè)務。各階段具體要求:1、需求分析階段 定義數據項的含義和取值 定義目標系統(tǒng)的數據流2、概念結構設計階段 畫出實體模型 E-R 圖3、邏輯結構設計階段 將實體模型轉化為關系模型 給出每個關系的主關鍵字和函數依賴集 分析你所設計的關系數據庫模式是否屬于 3NF4、物理設計階段 確定所有字段的名稱、類型、寬度、小數位數及完整

3、性約束 確定數據庫及表的名稱及其組成確定索引文件和索引關鍵字5、數據庫安全及維護設計階段 設計一個適合的數據庫安全策略(用戶身份認證、訪問權限、視圖) 為了實現復雜的數據完整性約束,設計適當的觸發(fā)器設計一個適合的數據庫備份策略6、實施階段 要求所有操作必須在查詢分析器中用 SQL 語句或系統(tǒng)存儲過程完成。 對于學有余力的同學,可以使用嵌入式 SQL 語句結合高級語言開發(fā)完成。設計工作量: (1)軟件設計:完成問題陳述中所提到的所有需求功能。(2)論文:要求撰寫不少于 3000 個文字的電子文檔,詳細說明各階段具體要求。工作計劃:安排兩周時間進行課程設計,軟件開發(fā)步驟如下,第一周完成14,第二周

4、完成 58,論文同步進行;1) 選定題目2) 需求分析3) 概念結構設計4) 邏輯結構設計5) 物理設計6) 數據庫安全及維護設計7) 數據庫上機實現8) 答辯計劃時間指導老師班級1314周潘怡、卓琳13軟件 1 班1314周潘怡、卓琳13軟件 2 班1314周劉欣、黃彩霞13軟件 3 班1314周劉欣、黃彩霞13軟件 4 班1314周楊剛、劉鋼欽13軟件 5 班1314周楊剛、劉鋼欽13軟件 6 班注意事項提交電子文檔長沙學院課程設計任務書 (每學生 1 份)長沙學院課程設計論文(每學生 1 份)日期:日期:日期:長沙學院課程設計鑒定表(每學生 1 份) 指導教師簽名: 教研室主任簽名: 系

5、主任簽名:長沙學院課程設計鑒定表姓名 學號 專業(yè) 軟件工程 班級設計題目 火車票預訂管理系統(tǒng) 指導教師指導教師意見:評定等級: 教師簽名: 日期:答辯小組意見:評定等級: 答辯小組長簽名: 日期:教研室意見:教研室主任簽名: 日期:系(部)意見:系主任簽名: 日期:說明課程設計成績分“優(yōu)秀” 、“良好”、“及格”、“不及格”四類;目錄一、引言 51.1 編寫目的 51.2 參考資料 5二、需求規(guī)約 62.1 業(yè)務描述 62.1.1 經濟可行性 62.1.2 技術可行性 62.1.3 操作可行性 62.1.4 業(yè)務流程圖 62.1.5 系統(tǒng)框架 82.2 需求分析 112.2.1 功能需求 11

6、2.2.2 數據需求 122.2.3 性能需求 12三、數據庫環(huán)境說明 13四、數據庫的命名規(guī)則 134.1 數據庫對象命名規(guī)則 134.2 數據項編碼規(guī)則 13五、邏輯設計 14六、物理設計 156.1 表匯總 156.2 表的基本信息 166.3 視圖的設計 186.4 存儲過程、函數及觸發(fā)器的設計 19七、安全性設計 267.1 防止用戶直接操作數據庫的方法 267.2 用戶帳號密碼的加密方法 277.3 角色與權限 27八、數據庫管理與維護說明 27引言1.1 編寫目的隨著時代的發(fā)展,計算機軟件和系統(tǒng)的成熟,火車票的正當管理成為一個影響鐵 路部門正常運營的因素之一,而建立火車票訂票管理

7、系統(tǒng)是一個很好的解決辦法。作為計算機應用的一部分,使用計算機對火車票信息進行管理,具有手工管理所 無法比擬的優(yōu)點,例如檢索迅速、查找方便、可靠性高、存儲量大、保密性好等,這 些優(yōu)點能夠極大的提高火車票信息管理的效率,也正體現了火車票的科學化正規(guī)化管 理現在隨著社會的發(fā)展,數據量急劇增長,現在人們就借助計算機和數據庫技術科 學的保存大量的數據,以便能更好的利用這些數據資源。本論文就是通過 SQL 的整體 設計把數據庫與應用程序相連接,做成一個火車票的訂票管理系統(tǒng),使得火車票管理 員能夠有效的管理車次信息、旅客信息、退票信息等。同時用戶可以通過查詢到相關 的火車票信息,選擇是否適合自己,也可以在網

8、上直接訂票、退票,省時省力 。1.2 參考資料資料名稱作者文件編號、版本數據庫系統(tǒng)概論王珊、薩師煊2006年 5月第 4 版現代軟件工程孫涌2003 年 8 月第 1-246 版精通 SQL server 2000數據庫管理與開發(fā)于松濤2003 年 10月二、需求規(guī)約2.1 業(yè)務描述該階段通過對系統(tǒng)目標的初步調研和分析, 提出可行性方案并進行論證。 我們在這里主要從技 術可行性、經濟可行性和操作可行性三方面進行分析。2.1.1 經濟可行性本系統(tǒng)其他應用軟件、硬件系統(tǒng)也易于獲得.因此 ,開發(fā)成本較低。而引進使用本系統(tǒng)后,與傳統(tǒng)方式相比,具有高效率、低成本、高質量的特點,可以節(jié)省不少人力、物力及財

9、力。所以,從經濟的 角度來看,該系統(tǒng)可行。2.1.2 技術可行性開發(fā)工具: VS2005數據庫環(huán)境: SQL Server 2008系統(tǒng)環(huán)境: Microsoft Windows 2000 或以上版本。系統(tǒng)實現依靠相對熟悉的 c 語言和 SQL Server2008 數據庫系統(tǒng),其基本操作實質還是對數據庫進 行添加、刪除、查找等操作。2.1.3 操作可行性系統(tǒng)采用菜單式,實現用戶與數據庫的交互,界面簡潔友好,操作方便。2.1.4 業(yè)務流程圖經過可行性分析和初步需求調查,抽象出該系統(tǒng)業(yè)務流程圖, 結合該實例具體情況,給出旅客信息、 訂 票信息和取票通知的具體需求。圖 2.1 旅客購票流程圖 調查

10、用戶需求 售票處需求 功能:旅客持個人證件去火車站購買火車票。希望能通過旅客姓名查到該旅客的列車車次 并記錄旅客基本信息。統(tǒng)計功能:按火車票統(tǒng)計買票人數按姓名統(tǒng)計火車票數 旅客購票需求交費功能:交費退費 取票需求通知功能:通知旅客取票統(tǒng)計功能:統(tǒng)計通過驗證的人數統(tǒng)計可以取票的人 統(tǒng)計未通過驗證的人數查詢功能:購票旅客查詢購票旅客姓名購票旅客身份證號購票旅客訂單號 列車車次信息需求 查詢功能: 車次 始發(fā)站 終點站 始發(fā)時間2.1.5 系統(tǒng)框架在調查完了用戶需求之后, 就要開始分析用戶需求。 在此, 我們們采用自頂向下的結構化分析方法 SA 方法)。首先,定義全局概念結構的框架,如圖 2.2 所

11、示。圖 2.2 火車票預定系統(tǒng)總框架圖各子系統(tǒng)需要進一步細化。旅客信息系統(tǒng)為例進一步細化,如圖 2.3 所示。圖 2.3 旅客信息系統(tǒng)細化以其中的查詢旅客信息功能為例進一步細化,如圖2.4 所示。圖 2.4 查詢旅客信息功能圖 2.5 列車車次信息系統(tǒng)細化圖 2.6 取票通知系統(tǒng)細化圖 2.7 旅客信息系統(tǒng)能查詢到的內容圖 2.8 火車票信息系統(tǒng)能查詢到的內容圖 2.9 退票信息系統(tǒng)細化10將所有子系統(tǒng)全部細化。將所有用戶需求分析完畢之后,就要開始構造數據字典了。經分析之后, 本系統(tǒng)要用到五個基本表:退票信息表,旅客信息表,列車車次信息表,取票通知信息系統(tǒng),列車座位 信息表。數據結構定義如表

12、2.1 所示。表 2.1 數據結構定義數據結構名含義說明組成退票信息定義了退票旅客的有關信息旅客姓名,身份證號,訂單號,電話號旅客定義了旅客有關信息旅客姓名,身份證號,性別, 工作單位,電話號列車車次信息表定義了車次的有關信息車次號,始發(fā)地,目的地,始發(fā)時間取票通知單定義了取票通知相關有關信息旅客姓名,取票時間,列車車次,座位號,火車票類型列車座位信息表定義了列車座位有關信息列車號,座位號 ,座位信息,火車票類型2.2 需求分析需求分析是軟件設計的一個重要的環(huán)節(jié)。 本階段對訂票系統(tǒng)的應用情況作全面調查, 以確定系統(tǒng)目 標,并對系統(tǒng)所需要的基礎數據以及數據處理要求進行分析, 從而確定用戶的需求。

13、 用戶對系統(tǒng)的需求 我們從以下幾方面進行分析。2.2.1 功能需求本網上訂票系統(tǒng)應該具備如下功能:1. 查詢分為對車次信息的查詢和客戶對已訂車票信息的查詢。要求:1)對車次的查詢,可以按照發(fā)車車次進行查詢;2)車次信息包括:車號、出發(fā)地、目的地、發(fā)車日期、開出時刻、票價。3)座位類型設定。2. 訂票通過查詢系統(tǒng), 客戶根據自己的需求找到滿意的車次, 再輸入個人信息后直接通過網上訂票確定已 預訂選中的車票。要求 :訂票記錄應包括:會員名、車號、發(fā)車日期、訂購日期、訂購票數、總價。3. 退票 可退票,通過查詢系統(tǒng),客戶可以自己的名字找到自己的訂票信息,通過退票模塊退去已購車票。112.2.2 數據

14、需求信息需求, 即在系統(tǒng)中需要處理哪些數據。 根據對火車站網上訂票系統(tǒng)的分析, 本系統(tǒng)的信息需求 如表 2-1 所示。表 2-1 信息輸入輸出信息輸入信息處理信息輸出用戶輸入所需車次檢索系統(tǒng)數據庫符合用戶需求的車次及相關信息用戶輸入個人信息及所需訂 購的車票信息更新系統(tǒng)中的訂票信息, 將新信息存入系統(tǒng)數據庫操作反饋(如訂票成功)用戶輸入自己的名字、身份 證號;或交易的訂單號檢索系統(tǒng)數據庫符合用戶需求的訂票信息用戶輸入自己的名字檢索系統(tǒng)數據庫以得到訂票 記錄,刪除用戶請求的訂票 記錄,更新系統(tǒng)數據庫操作反饋(如退票成功等)2.2.3 性能需求為了保證系統(tǒng)能夠長期、安全、穩(wěn)定、可靠、高效的運行,本

15、系統(tǒng)應該滿足以下的性能需求。1. 準確性和及時性系統(tǒng)處理的準確性和及時性是系統(tǒng)的必要性能。 系統(tǒng)應能及時而且準確的根據用戶權限及所輸入的 信息做出響應。 由于本系統(tǒng)的查詢功能對于整個系統(tǒng)的功能和性能完成舉足輕重。 作為系統(tǒng)的很多數據 來源,而車票的數量和時間又影響用戶的決策活動,其準確性和及時性很大程度上決定了系統(tǒng)的成敗。 在系統(tǒng)開發(fā)過程中,必須采用一定的方法保證系統(tǒng)的準確性和及時性。2. 易用性本系統(tǒng)是直接面對用戶的, 而用戶往往對計算機并不是非常熟悉。 這就要求系統(tǒng)能夠提供良好的用 戶接口, 易用的人機交互界面。 要實現這一點, 就要求系統(tǒng)應該盡量使用用戶熟悉的術語和中文信息的 界面,從而

16、保證系統(tǒng)的易用性。3. 安全性網上訂票系統(tǒng)中涉及到的數據是客運公司相當重要的信息, 系統(tǒng)要保證用戶的權限, 對于車次等信息用 戶只享有查詢服務, 不得更改; 系統(tǒng)還要提供方便的手段供系統(tǒng)維護人員進行數據備份、 日常安全管理、 以及系統(tǒng)意外崩潰時數據的恢復等工作。同時系統(tǒng)還要保證對數據庫進行及時更新,保證數據一致性。12三、數據庫環(huán)境說明數據庫實 例數據庫系 統(tǒng)數據庫部 署環(huán)境數據庫設 計工具數據庫存放位 置說明火車票訂 票管理SQLServer2008Window 7SQL Server存放位置,絕 對路徑 /相對路 徑 D:/Program完整的車票管理流程四、數據庫的命名規(guī)則4.1 數據庫

17、對象命名規(guī)則數據庫對象命名規(guī)則備注表Tbl 功能描述字符串例如: Checi 車次信息表視圖View 功能描述字符串例如: Checi 車次信息視圖存儲過程Procedure 功能描述字符串例如: dbo . kh 存儲過程觸發(fā)器Insert_功能描述字符串例如:Insert_Or_Update_Sal_1更改庫數據庫4.2 數據項編碼規(guī)則數據項命名規(guī)則數據類型長度范圍備注C ci(G/K/T/D)+ 號碼varchar10 位車次號T seat1-800int10 位座位號C goTime年月日 +時:分:秒varchar10 位出發(fā)時間C fanhuiadd地名varchar10 位目的地

18、K name名字varchar10 位客戶姓名Y name名字varchar10 位業(yè)務員姓名K id數字varchar16 位身份證號碼Y tel數字varchar11 位電話號碼T price數字float10 位車票價格T type一等座 / 二等座varchar10 位座位類型131)五、邏輯設計關系模式:座位數)車次信息(車次編號、出發(fā)地、目的地、出發(fā)時間、到站時間、火車類型、里程數,車票信息(座位號、價格、當前預售狀態(tài)、座位類型)客戶(姓名、聯系電話、身份證號碼)業(yè)務員(姓名、工號)關系圖:2)主鍵身份證 ()電話主鍵客戶出發(fā)地出發(fā)時間訂票 /退票車次信息火車類型座位號價格包含車票

19、信息里程數座位數姓名業(yè)務員主鍵工號系統(tǒng)總體結構圖 5.1E-R 圖座位類 型到站時間當前銷售狀態(tài)車次編姓名主鍵14圖 5.2 邏輯關系圖六、物理設計6.1 表匯總表名功能說明車次表存儲車次的相關信息及其數據類型以及相關的約束車票信息表存儲車票的相關信息及其數據類型以及相關的約束客戶表存儲客戶的相關信息及其數據類型以及相關的約束業(yè)務員表存儲業(yè)務員的相關信息及其數據類型以及相關的約束156.2 表的基本信息車次信息表表名車次信息表數據庫用戶主鍵車次號其他排序字段無索引字段車次號序號字段名稱數據類型 (精 度范圍)允許為 空 Y/N唯一Y/N區(qū)別度默認值約束條件 / 說明1t noVARCHAR(1

20、0)NY高車次號 / 主鍵2t_departur eVARCHAR(10)NN中出發(fā)地3t_destinationVARCHAR(10)NN中目的地4t goTimeDATETIMENN中出發(fā)時間5t_returnTimeDATETIMENN中到站時間6t_trainTyp eVARCHAR(10)YN低火車類型7mileageNumberINTNN低里程數8seatNumberINTNN低座位數sql 腳本CREATE TABLE train_number( t_no VARCHAR (10) PRIMARY KEY, -車次編號(主鍵) t_departure VARCHAR (10) N

21、OT NULL,-出發(fā)地t_destination VARCHAR (10) NOT NULL, - 目的地 t_goTime DATETIME NOT NULL, - 出發(fā)時間 t_returnTime DATETIME NOT NULL, - 到站時間 t_trainType VARCHAR (10)CHECK (t_trainType IN( 高鐵,普快 ,特快,動車 ), -火車類型 t_mileageNumber INT NOT NULL, - 里程數 t_seatNumber INT NOT NULL - 座位數)備注16車票信息表表名車票信息表數據庫用戶主鍵車次編號其他排序字段無

22、索引字段車次編號序號字段名稱數據類型 (精 度范圍)允許為 空 Y/N唯一Y/N區(qū)別度默認值約束條件 / 說明1t noVARCHAR(10)NY高車次編號 / 主鍵2ti seatNoVARCHAR(10)NN中座位號3ti_seatPriceFLOAT(2)NN中車票價格4ti_saleStatusVARCHAR(10)NN中銷售狀態(tài)5ti_seatTyp eVARCHAR(10)NN中座位類型sql 腳本CREATE TABLE train_ticket(t_no VARCHAR (10), -車次編號 ti_seatNo VARCHAR (10), - 座位號 ti_seatPrice

23、 FLOAT (2) NOT NULL,- 車票價格ti_saleStatus VARCHAR (10) CHECK (ti_saleStatus IN( 待售 ,已售), -銷 售狀態(tài)ti_seatType VARCHAR (10)CHECK (ti_seatType IN( 一等座 ,二等座 ,三等 座 ), -座位類型PRIMARY KEY (ti_seatNo ,t_no), -主鍵約束FOREIGN KEY (t no) REFERENCES train number (t no) - 外鍵約束備注客戶信息表表名客戶信息表數據庫用戶主鍵身份證號碼其他排序字段無索引字段身份證號碼序號字

24、段名稱數據類型 (精 度范圍)允許為 空 Y/N唯一Y/N區(qū)別度默認值約束條件 / 說明1u IDVARCHAR(20)NY高身份證號碼 / 主鍵2u nameVARCHAR(10)NN中姓名3u_telephon eVARCHAR(10)NN中電話號碼17sql 腳本CREATE TABLE Users(u_ID VARCHAR (20) PRIMARY KEY, -身份證號碼 u_name VARCHAR (10) NOT NULL, - 姓名 u_telphone VARCHAR (10) NOT NULL,-電話號碼t_no VARCHAR (10) NOT NULL,-車次號ti_s

25、eatNo VARCHAR (10) NOT NULL,-座位號FOREIGN KEY (ti_seatNo ,t_no) REFERENCES train_ticket (ti_seatNo,t_no) -外鍵約束 -FOREIGN KEY() REFERENCES train ticket()- 外鍵約束備注業(yè)務員信息表表名業(yè)務員信息表數據庫用戶主鍵編號其他排序字段無索引字段編號序號字段名稱數據類型 (精 度范圍)允許為 空 Y/N唯一 Y/N區(qū)別度默認值約束條件 / 說明1s noVARCHAR(20)NY高編號/ 主鍵2s nameVARCHAR(20)NN中業(yè)務員姓名sql 腳本CR

26、EATE TABLE saleMan(s_no VARCHAR (20) PRIMARY KEY, -主鍵約束 s_name VARCHAR (20) NOT NULL,-業(yè)務員姓名ti_seatNo VARCHAR (10) NOT NULL,-座位號t_no VARCHAR (10) NOT NULL,-座位號FOREIGN KEY (ti_seatNo ,t_no) REFERENCES train_ticket (ti_seatNo ,t_no ) -外鍵約束)備注6.3 視圖的設計圖 6.3.1 車票信息視圖圖 6.3.1 售票信息視圖186.4 存儲過程、函數及觸發(fā)器的設計觸發(fā)器

27、1:修正票價和票價對應的座位類型 insert_or_upadte_sal_2USE 火車票 GO/* Object: Trigger dbo.insert_or_upadte_sal_2 Script Date:05/28/2016 06:22:30 */SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOALTER trigger dbo . insert_or_upadte_sal_2on dbo . Che_ticketfor insertasbeginDECLARE ti_seatNo VARCHAR( 10), ti_seatPriceFLOA

28、T ( 2), ti_seatTypeVARCHAR( 10), t_no varchar ( 10)SELECT ti_seatNo = T_seat , ti_seatPrice =T_price , ti_seatType =T_type , t_no =C_ci FROM insertedIF( ti_seatNo LIKEUPDATE Che_ticketA%SETAND t_no LIKE G-% )T_price =900 WHERE ti_seatNo= T_seatANDt_no=C_ciIF( ti_seatNo LIKEUPDATE Che_ticketB%SETIF(

29、ti_seatNo LIKEUPDATE Che_ticketC%SETAND t_no LIKE G-% )T_price =600 WHERE ti_seatNoAND t_no LIKE G-% )T_price =300 WHERE ti_seatNo= T_seat= T_seatIF( ti_seatNo LIKEUPDATE Che_ticketA%SETAND t_no LIKE K-% )-K 是普快T_price =400 WHERE ti_seatNo= T_seatIF( ti_seatNo LIKEUPDATE Che_ticketB%SETIF( ti_seatNo

30、 LIKEC%AND t_no LIKE K-% )T_price =200 WHERE ti_seatNoAND t_no LIKE K-% )= T_seatANDANDANDANDUPDATE Che_ticketSETT_price =100 WHERE ti_seatNo= T_seatAND19t_not_not_not_not_no=C_ci=C_ci=C_ci=C_ci=C_ciIF( ti_seatNoLIKEA% )UPDATE Che_ticketSETT_price=200IF( ti_seatNoLIKEA% )UPDATE CheticketSETT_price=

31、一等座IF( ti_seatNoLIKEB% )UPDATE Che_ticketSETT_price=100IF( ti_seatNoLIKEB% )UPDATE CheticketSETT_price= 二等座IF( ti_seatNo LIKEA%AND t_no LIKE T-% )IFIFIFIFIFendUPDATE Che_ticket( ti_seatNo LIKEUPDATE Che_ticket( ti_seatNo LIKEUPDATE Che_ticket( ti_seatNo LIKEUPDATE Che_ticket( ti_seatNo LIKEUPDATE Ch

32、e_ticket( ti_seatNo LIKEUPDATE Che_ticketSETB%SETC%SETA%SETB%SETC%SETT_price =600 WHERE ti_seatNo AND t_no LIKE T-% )T_price =400 WHERE ti_seatNo AND t_no LIKE T-% )T_price =200 WHERE ti_seatNoAND t_no LIKE D-% )T_price =900 WHERE ti_seatNoAND t_no LIKE D-% )T_price =600 WHERE ti_seatNoAND t_no LIKE

33、 D-% )T_price =300 WHERE ti_seatNo= T_seat= T_seat= T_seat= T_seat= T_seat= T_seatANDANDANDANDANDANDt_not_not_not_not_not_no=C_ci=C_ci=C_ci=C_ci=C_ci=C_ci圖213215 觸發(fā)器 2:火車類型和對應的座位數剩余 Insert_Or_Update_Sal_1 USE 火車票 GO/* Object: Trigger dbo.Insert_Or_Update_Sal_1 Script Date: 05/28/2016 07:11:02 */SET

34、ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOALTER TRIGGER dbo . Insert_Or_Update_Sal_1 ON dbo . CheciFOR INSERT20ASDECLARE t_no VARCHAR( 10 ), t_seatNumber INT , t_trainType SELECT t_no =C_ci , t_seatNumber - 第一部分IF= C_seatNumber , t_trainTypeVARCHAR( 10)= C_type FROM inserted( t_no LIKE G-% ) UPDATE C

35、heci SETC_type= 高鐵 , C_seatNumber=200WHERE t_no =C_ciIF( t_no LIKE T-% )UPDATE Checi SET WHERE t_no =C_ciC_type= 特快 , C_seatNumber=200IF( t_no LIKE D-% )UPDATE Checi SET WHERE t_no =C_ciC_type= 動車 , C_seatNumber=300IF( t_no LIKE K-% )UPDATE Checi SETC_type= 普快 , C_seatNumber=400WHERE t_no =C_ci存儲過程

36、1:客戶買票USE 火車票 GO/* Object: StoredProcedure dbo.kh Script Date: 05/28/2016 07:12:03 */SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOALTER PROC dbo . khK_id VARCHAR( 20),21K_name VARCHAR( 10 ),K_tel VARCHAR( 10),C_ci VARCHAR( 10),T_seat VARCHAR( 10 )ASIF C_ci IS NULLBEGIN ROLLBACK ; RETURN;ENDIF T_seat

37、 IS NULLBEGIN ROLLBACK ; RETURN;ENDIF K_id IS NULLBEGIN ROLLBACK ; RETURN;ENDIF K_name IS NULLBEGIN ROLLBACK ; RETURN;ENDIF K_tel IS NULLBEGIN ROLLBACK ; RETURN;ENDELSEBEGINUPDATE Che_ticketSET T_sale = 已售 WHERE C_ci = C_ci AND T_seat = T_seatUPDATE CheciSET C_seatNumber = C_seatNumber - 1 WHERE C_c

38、i =C_ciINSERT INTO Kehu ( K_id , K_name , K_tel , T_seat , C_ci ) VALUES ( K_id , K_name, K_tel , T_seat , C_ci )DELETE FROM Yewuyuan22WHERE C_ci = C_ci AND T_seat = T_seatPRINT 買票成功!END圖6.4.1存儲過程買票的實現存儲過程 2:業(yè)務員退票USE 火車票 GOdbo.ywy ScriptDate: 05/28/2016 07:33:15/* Object: StoredProcedure */SET ANSI_

39、NULLS ONGOSET QUOTED_IDENTIFIER ON GOALTER PROC dbo . ywy y_id varchar ( 10), y_name varchar ( 10), C_ci varchar ( 10), T_seat varchar ( 10), Y_tel varchar ( 10 ) asif y_name is nullbeginrollback ; return ;endif c_ci is nullbegin rollback return23endif y_id is nullbeginrollback ;return ;endif T_seat

40、 is nullbeginrollback ;return ;endelsebegin update Checi set T_sale = 待售 where C_ci = C_ci and T_seat = T_seat update Checiset C_seatNumber = C_seatNumber +1where C_ci = C_ci and C_seatNumber 1000delete from Kehuwhere C_ci = C_ci and T_seat = T_seatinsert into Yewuyuan ( Y_id , Y_name , Y_tel , T_se

41、at , C_ci ) values ( Y_id , Y_name , Y_tel , T_seat , C_ci ) print 退票成功 end圖6.4.1存儲過程退票的實現24存儲過程:查票信息USE 火車票 GO/* Object: StoredProcedure*/SET ANSI_NULLS ON GOSET QUOTED_IDENTIFIER ON GOdbo.piao ScriptDate: 05/27/201608:47:29ALTER PROC dbo . piao C_goTime datetime , C_chufaadd VARCHAR( 10 ), C_fanhuiadd VARCHAR( 10), C_type VARCHAR( 10)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論