网吧管理系统数据库设计
摘? 要:網(wǎng)吧管理系統(tǒng)是為解決大型網(wǎng)吧面臨的復(fù)雜電腦管理業(yè)務(wù)流程和繁瑣的客戶服務(wù)、信息處理業(yè)務(wù)而開發(fā)的管理系統(tǒng)。它主要包含系統(tǒng)管理、會(huì)員管理、日常管理、查詢管理、統(tǒng)計(jì)報(bào)表五個(gè)模塊。數(shù)據(jù)庫(kù)設(shè)計(jì)過程中主要進(jìn)行了分析網(wǎng)吧電腦使用業(yè)務(wù)方面的需求,進(jìn)行概念結(jié)構(gòu)、邏輯結(jié)構(gòu)和物理結(jié)構(gòu)的設(shè)計(jì),并通過建立視圖、存儲(chǔ)過程和觸發(fā)器實(shí)現(xiàn)了滿足不同用戶的不同需求,如針對(duì)會(huì)員的上機(jī)和服務(wù),針對(duì)管理員的賬單查看和收費(fèi)時(shí)間計(jì)劃管理以及針對(duì)不同等級(jí)的會(huì)員的不同服務(wù)。實(shí)現(xiàn)了較為自動(dòng)化、人性化的網(wǎng)吧管理、會(huì)員服務(wù)、信息管理的管理功能。
1、需求分析
本系統(tǒng)主要任務(wù)是實(shí)現(xiàn)網(wǎng)吧信息管理系統(tǒng)。系統(tǒng)分為以下五個(gè)功能模塊:系統(tǒng)管理、會(huì)員管理、日常管理、查詢管理、統(tǒng)計(jì)報(bào)表。具體功能可以從以下五個(gè)方面介紹:
數(shù)據(jù)流程圖
?
?
?
?
?
?
數(shù)據(jù)字典?
1.數(shù)據(jù)項(xiàng)
表6-1 數(shù)據(jù)項(xiàng)
|   編號(hào)  |   屬性名  |   含義  |   數(shù)據(jù)類型  |   長(zhǎng)度  |   約束條件  | |
|   DI-01  |   UserAccount  |   會(huì)員賬號(hào)  |   Varchar2  |   40  |   無  | |
|   DI-02  |   UserID  |   會(huì)員身份證號(hào)  |   Varchar2  |   40  |   無  | |
|   DI-03  |   UserAge  |   會(huì)員年齡  |   Number  |   40  |   1-100  | |
|   DI-04  |   UserPassword  |   會(huì)員密碼  |   Varchar2  |   40  |   無  | |
|   DI-05  |   UserBalance  |   會(huì)員余額  |   Number  |   40  |   無  | |
|   DI-06  |   UserPhone  |   會(huì)員電話號(hào)  |   Varchar2  |   40  |   無  | |
|   DI-07  |   UserQQ  |   會(huì)員QQ  |   Varchar2  |   40  |   無  | |
|   DI-08  |   UserWechat  |   會(huì)員微信  |   Varchar2  |   40  |   無  | |
|   DI-09  |   UserProfession  |   會(huì)員職業(yè)  |   Varchar2  |   40  |   無  | |
|   DI-10  |   UserSex  |   會(huì)員性別  |   Number  |   40  |   0 or 1  | |
|   DI-11  |   UserAddress  |   會(huì)員地址  |   Varchar2  |   40  |   無  | |
|   DI-12  |   UserGrade  |   會(huì)員等級(jí)  |   Number  |   40  |   無  | |
|   DI-13  |   AdministratorAccount  |   管理員賬號(hào)  |   Varchar2  |   40  |   無  | |
|   DI-14  |   AdministratorID  |   管理員身份證號(hào)  |   Varchar2  |   40  |   無  | |
|   DI-15  |   AdministratorAge  |   管理員年齡  |   Number  |   40  |   1-100  | |
|   DI-16  |   AdministratorPassword  |   管理員密碼  |   Varchar2  |   40  |   無  | |
|   DI-17  |   AdministratorPhone  |   管理員電話號(hào)  |   Varchar2  |   40  |   無  | |
|   DI-18  |   AdministratorQQ  |   管理員QQ  |   Varchar2  |   40  |   無  | |
|   DI-19  |   AdministratorWechat  |   管理員微信  |   Varchar2  |   40  |   無  | |
|   DI-20  |   AdministratorProfession  |   管理員職業(yè)  |   Varchar2  |   40  |   無  | |
|   DI-21  |   AdministratorSex  |   管理員性別  |   Number  |   40  |   0 or 1  | |
|   DI-22  |   AdministratorAddress  |   管理員地址  |   Varchar2  |   40  |   無  | |
|   DI-23  |   AdministratorRight  |   管理員權(quán)限  |   Number  |   40  |   0 or 1  | |
|   DI-24  |   UserUP_time  |   會(huì)員上機(jī)時(shí)間  |   Date  |   40  |   無  | |
|   DI-25  |   UserDown_time  |   會(huì)員下機(jī)時(shí)間  |   Date  |   40  |   無  | |
|   DI-26  |   AdministratorUp_time  |   管理員上班時(shí)間  |   Date  |   40  |   無  | |
|   DI-27  |   AdministratorDown_time  |   管理員下班時(shí)間  |   Date  |   40  |   無  | |
|   DI-28  |   UserDuration  |   會(huì)員上機(jī)時(shí)長(zhǎng)  |   Number  |   40  |   1-100  | |
|   DI-29  |   AdministrationDuration  |   管理員工作時(shí)長(zhǎng)  |   Number  |   40  |   0-24  | |
|   DI-30  |   User_recharge_amount  |   會(huì)員充值金額  |   Number  |   40  |   無  | |
|   DI-31  |   User_other_consume  |   會(huì)員其他消費(fèi)金額  |   Number  |   40  |   無  | |
|   DI-32  |   Bill_ID  |   賬單編號(hào)  |   Number  |   40  |   無  | |
|   DI-33  |   User_consume  |   會(huì)員消費(fèi)金額  |   Varchar2  |   40  |   無  | |
|   DI-34  |   PC_ID  |   電腦編號(hào)  |   Varchar2  |   40  |   無  | |
|   DI-35  |   PC_Gpu  |   電腦顯卡  |   Varchar2  |   40  |   無  | |
|   DI-36  |   PC_CPU  |   電腦CPU  |   Varchar2  |   40  |   無  | |
|   DI-37  |   PC_Display  |   電腦顯示器  |   Varchar2  |   40  |   無  | |
|   DI-38  |   PC_Keyboard  |   電腦鍵鼠  |   Varchar2  |   40  |   無  | |
|   DI-39  |   PC_maintain_Money  |   電腦維修金額  |   Number  |   40  |   無  | |
|   DI-40  |   PC_charge_grade  |   電腦收費(fèi)等級(jí)  |   Date  |   40  |   無  | |
|   DI-41  |   PC_charge_time  |   收費(fèi)時(shí)間段  |   Date  |   40  |   無  | |
|   DI-42  |   Charge_money  |   收費(fèi)金額  |   Varchar2  |   40  |   無  | |
|   DI-43  |   User_massage  |   會(huì)員消息  |   Varchar2  |   40  |   無  | |
|   DI-44  |   PC_state  |   電腦使用狀態(tài)  |   Number  |   40  |   0 or 1  | |
|   DI-45  |   Rest_time  |   會(huì)員可用時(shí)間  |   Number  |   40  |   無  | |
|   DI-46  |   Extend_time_length  |   延時(shí)啟動(dòng)時(shí)長(zhǎng)  |   Number  |   40  |   無  | |
|   DI-47  |   Extend_PC_ID  |   延時(shí)啟動(dòng)機(jī)號(hào)  |   Varchar2  |   40  |   無  | |
|   DI-48  |   Restart  |   是否重新啟動(dòng)  |   Varchar2  |   40  |   無  | |
|   DI-49  |   Network_State  |   電腦網(wǎng)絡(luò)狀態(tài)  |   Number  |   40  |   0 or 1  | |
|   DI-50  |   Extend_time  |   延時(shí)啟動(dòng)時(shí)間點(diǎn)  |   Date  |   40  |   當(dāng)前時(shí)間  | |
|   DI-51  |   Administrator_work_ID  |   工作單編號(hào)  |   Varchar2  |   40  |   無  | |
|   DI-52  |   PC_maintain_ID  |   維修單編號(hào)  |   Varchar2  |   40  |   無  | |
|   DI-53  |   User_Recharge_time  |   會(huì)員充值時(shí)間  |   number  |   40  |   大于0  | |
|   DI-54  |   User_name  |   會(huì)員姓名  |   Varchar2  |   40  |   無  | |
|   DI-55  |   Administrator_Name  |   管理員姓名  |   Varchar2  |   40  |   無  | |
|   DI-56  |   Maintain_Content  |   維修內(nèi)容  |   Varchar2  |   40  |   無  | |
2.數(shù)據(jù)結(jié)構(gòu)
表6-2 數(shù)據(jù)結(jié)構(gòu)
|   含義  |   組成  | 
|   會(huì)員表  |   UserAccount,UserID,UserAge,UserName,UserPassword,UserBalance,UserPhone,UserQQ,UserWechat,UserProfession,UserSex,UserAddress,UserGrade  | 
|   管理員表  |   AdministratorAccount,AdministratorID,AdministratorAge,AdministratorName,AdministratorPassword,AdministratorPhone,AdministratorQQ,AdministratorWechat,AdministratorProfession,AdministratorSex,AdministratorAddress,AdministratorRight  | 
|   電腦表  |   PC_ID,PC_Gpu,PC_CPU,PC_Display,PC_Keyboard,PC_charge_grade  | 
|   賬單(下機(jī))  |   UserUP_time,UserDown_time,UserDuration,User_consume,Bill_ID,User_other_consume,UserAccount,AdministratorAccount,PC_ID,User_name,Administrator_name  | 
|   電腦使用記錄  |   PC_ID,UserAccount,AdministratorAccount,UserUP_time,UserDown_time,UserDuration,PC_charge_grade,PC_charge_time,PC_state  | 
|   電腦維修記錄  |   AdministratorAccount,PC_maintain_ID,PC_maintain_Money,Maintain_Content  | 
|   上機(jī)情況表  |   PC_ID,UserAccount,AdministratorAccount,UserUP_time,UserDown_time,UserDuration,PC_charge_grade,PC_charge_time,PC_state,Extend_time_length,Extend_PC_ID,Restart,Network_State,Extend_time  | 
|   會(huì)員充值表  |   UserAccount,AdministratorAccount,User_recharge_amount,User_Recharge_time ,User_name,Administrator_Name  | 
|   會(huì)員消息表  |   UserAccount,AdministratorAccount,User_name,Administrator_Name,User_massage,UserGrade  | 
|   費(fèi)率表  |   PC_ID,UserAccount,AdministratorAccount,PC_charge_grade,PC_charge_time,Charge_money  | 
|   管理員工作表  |   AdministratorAccount,Administrator_Name,Administrator_work_ID,AdministratorPhone,AdministratorUp_time,AdministratorDown_time,AdministrationDuration  | 
3.數(shù)據(jù)流
表6-3 數(shù)據(jù)流
|   編號(hào)  |   數(shù)據(jù)流名稱  |   簡(jiǎn)述  |   數(shù)據(jù)流來源  |   數(shù)據(jù)流去向  |   數(shù)據(jù)流組成  |   數(shù)據(jù)流量  |   高峰流量  | 
|   F1  |   機(jī)號(hào)信息  |   將電腦信息上傳至電腦設(shè)置  |   管理員  |   客戶端設(shè)置  |   DS-3  |   300次/月  |   500次/月  | 
|   F2  |   機(jī)號(hào)信息  |   電腦的基本信息存入電腦表  |   客戶端設(shè)置  |   電腦表  |   DS-20  |   300次/月  |   500次/月  | 
|   F3  |   機(jī)號(hào)信息  |   電腦的基本信息傳入費(fèi)率設(shè)置  |   客戶端設(shè)置  |   費(fèi)率設(shè)置  |   DS-10  |   3次/月  |   6次/月  | 
|   F4  |   時(shí)段信息  |   傳輸收費(fèi)的時(shí)間段  |   管理員  |   時(shí)段設(shè)置  |   DS-17  |   30次/月  |   60次/月  | 
|   F5  |   費(fèi)率信息  |   傳輸收費(fèi)的金額等信息  |   管理員  |   費(fèi)率設(shè)置  |   DS-18  |   30次/月  |   60次/月  | 
|   F6  |   管理員信息  |   傳輸管理員信息用于設(shè)置  |   管理員  |   管理員設(shè)置  |   DS-11  |   5次/月  |   10次/月  | 
|   F7  |   管理員信息  |   存儲(chǔ)管理員信息  |   管理員設(shè)置  |   管理員表  |   DS-15  |   5次/月  |   10次/月  | 
|   F8  |   時(shí)段信息  |   存儲(chǔ)收費(fèi)時(shí)段信息  |   時(shí)段設(shè)置  |   時(shí)段表  |   DS-12  |   300次/月  |   500次/月  | 
|   F9  |   時(shí)段信息  |   將時(shí)段信息傳到費(fèi)率設(shè)置  |   時(shí)段設(shè)置  |   費(fèi)率設(shè)置  |   DS-10  |   3次/月  |   6次/月  | 
|   F10  |   費(fèi)率信息  |   存儲(chǔ)費(fèi)率信息  |   費(fèi)率設(shè)置  |   費(fèi)率表  |   DS-3  |   300次/月  |   500次/月  | 
|   F11  |   會(huì)員ID  |   會(huì)員信息存儲(chǔ)到會(huì)員表  |   會(huì)員添加  |   會(huì)員表  |   DS-13  |   300次/月  |   500次/月  | 
|   F12  |   會(huì)員ID  |   傳輸會(huì)員信息用于添加  |   管理員  |   會(huì)員添加  |   DS-3  |   300次/月  |   500次/月  | 
|   F13  |   會(huì)員詳情信息  |   從會(huì)員表中提取信息  |   會(huì)員表  |   會(huì)員刪除  |   DS-8  |   5次/月  |   10次/月  | 
|   F14  |   會(huì)員ID  |   選擇會(huì)員刪除信息  |   管理員  |   會(huì)員刪除  |   DS-7  |   5次/月  |   10次/月  | 
|   F15  |   會(huì)員個(gè)人信息  |   將會(huì)員信息保存到會(huì)員表  |   會(huì)員修改  |   會(huì)員表  |   DS-8  |   5次/月  |   10次/月  | 
|   F16  |   會(huì)員個(gè)人信息  |   會(huì)員修改個(gè)人信息  |   會(huì)員  |   會(huì)員修改  |   DS-7  |   5次/月  |   10次/月  | 
|   F17  |   余額信息  |   用于會(huì)員查看余額  |   會(huì)員表  |   會(huì)員  |   DS-12  |   30次/月  |   30次/月  | 
|   F18  |   余額信息  |   用于會(huì)員充值  |   會(huì)員表  |   賬號(hào)充值  |   DS-13, DS-14  |   30次/月  |   50次/月  | 
|   F19  |   充值金額  |   用于會(huì)員充值  |   會(huì)員  |   賬號(hào)充值  |   DS-10  |   30次/月  |   50次/月  | 
|   F20  |   充值信息  |   將充值信息保存  |   賬號(hào)充值  |   充值表  |   DS-3  |   300次/月  |   500次/月  | 
|   F21  |   檢測(cè)信號(hào)  |   用于電腦的開機(jī)管理  |   管理員  |   開機(jī)管理  |   DS-2  |   300次/月  |   500次/月  | 
|   F22  |   限時(shí)信息  |   限制電腦的使用時(shí)間  |   管理員  |   限時(shí)機(jī)制  |   DS-2  |   300次/月  |   500次/月  | 
|   F23  |   機(jī)號(hào)信息  |   用于會(huì)員換機(jī)  |   管理員  |   換機(jī)機(jī)制  |   DS-9  |   3次/月  |   6次/月  | 
|   F24  |   短信息  |   管理員接受消息  |   消息機(jī)制  |   管理員  |   DS-13  |   3次/月  |   6次/月  | 
|   F25  |   連接信息  |   電腦的網(wǎng)絡(luò)連接狀態(tài)  |   開機(jī)管理  |   上機(jī)情況表  |   DS-14  |   3次/月  |   6次/月  | 
|   F26  |   機(jī)號(hào)信息  |   將機(jī)號(hào)傳到消息機(jī)制  |   電腦表  |   消息機(jī)制  |   DS-13  |   300次/月  |   500次/月  | 
|   F27  |   機(jī)號(hào)信息  |   限時(shí)信息傳到電腦表  |   限時(shí)機(jī)制  |   電腦表  |   DS-14  |   20次/月  |   10次/月  | 
|   F28  |   延時(shí)信息  |   延長(zhǎng)時(shí)間使用電腦  |   延時(shí)重啟設(shè)置  |   上機(jī)情況表  |   DS-18  |   30次/月  |   60次/月  | 
|   F29  |   重啟信息  |   用于重新啟動(dòng)電腦  |   延時(shí)重啟設(shè)置  |   上機(jī)情況表  |   DS-5  |   30次/月  |   60次/月  | 
|   F30  |   費(fèi)率信息  |   根據(jù)余額限制時(shí)間  |   費(fèi)率表  |   限時(shí)機(jī)制  |   DS-18  |   25次/月  |   50次/月  | 
|   F31  |   機(jī)號(hào)信息  |   設(shè)置延時(shí)重啟的電腦  |   電腦表  |   延時(shí)重啟設(shè)置  |   DS-5  |   25次/月  |   50次/月  | 
|   F32  |   換機(jī)信息  |   換機(jī)信息存入上機(jī)情況表  |   換機(jī)機(jī)制  |   上機(jī)情況表  |   DS-18  |   20次/月  |   40次/月  | 
|   F33  |   短消息  |   保存短消息  |   消息機(jī)制  |   短消息表  |   DS-6  |   20次/月  |   40次/月  | 
|   F34  |   會(huì)員請(qǐng)求  |   會(huì)員對(duì)系統(tǒng)管理員的請(qǐng)求  |   會(huì)員  |   消息機(jī)制  |   DS-13, DS-14  |   300次/月  |   30次/月  | 
|   F35  |   短消息  |   查看存儲(chǔ)的短消息  |   段消息表  |   消息機(jī)制  |   DS-10  |   300次/月  |   50次/月  | 
|   F36  |   會(huì)員消息  |   會(huì)員詳細(xì)消息  |   會(huì)員表  |   賬號(hào)查詢  |   DS-3  |   300次/月  |   50次/月  | 
|   F37  |   賬號(hào)信息  |   管理員查看會(huì)員消息  |   賬號(hào)查詢  |   管理員  |   DS-2  |   3次/月  |   500次/月  | 
|   F38  |   賬單列表信息  |   賬單發(fā)送給管理員  |   賬單查詢  |   管理員  |   DS-2  |   3次/月  |   500次/月  | 
|   F39  |   上機(jī)情況  |   管理員查看上機(jī)情況  |   上機(jī)統(tǒng)計(jì)  |   管理員  |   DS-9  |   3次/月  |   500次/月  | 
|   F40  |   充值賬單信息  |   查看充值明細(xì)  |   充值明細(xì)  |   管理員  |   DS-13  |   300次/月  |   6次/月  | 
|   F41  |   充值信息  |   充值表中查看明細(xì)  |   充值表  |   充值明細(xì)  |   DS-14  |   20次/月  |   6次/月  | 
|   F42  |   個(gè)人充值信息  |   充值信息放入賬單  |   充值表  |   賬單查詢  |   DS-13  |   30次/月  |   30次/月  | 
|   F43  |   賬單信息  |   賬單表中提取賬單信息  |   賬單表  |   賬單查詢  |   DS-13, DS-14  |   30次/月  |   50次/月  | 
|   F44  |   賬單信息  |   會(huì)員查看賬單信息  |   賬單查詢  |   會(huì)員  |   DS-10  |   300次/月  |   50次/月  | 
|   F45  |   會(huì)員ID  |   查看特定會(huì)員賬單  |   會(huì)員  |   賬單查詢  |   DS-3  |   300次/月  |   500次/月  | 
|   F46  |   人數(shù)信息  |   查看上機(jī)人數(shù)  |   上機(jī)情況表  |   上機(jī)統(tǒng)計(jì)  |   DS-2  |   300次/月  |   500次/月  | 
|   F47  |   管理員信息  |   查看管理員信息  |   管理員表  |   管理員統(tǒng)計(jì)  |   DS-2  |   3次/月  |   500次/月  | 
|   F48  |   管理員值班信息  |   查看管理員值班信息  |   管理員統(tǒng)計(jì)  |   管理員  |   DS-9  |   3次/月  |   6次/月  | 
|   F49  |   收費(fèi)明細(xì)  |   查看會(huì)員的收費(fèi)明細(xì)  |   收費(fèi)報(bào)表  |   管理員  |   DS-13, DS-14  |   300次/月  |   30次/月  | 
|   F50  |   管理員信息  |   哪個(gè)管理員收費(fèi)  |   管理員表  |   收費(fèi)報(bào)表  |   DS-10  |   300次/月  |   50次/月  | 
|   F51  |   賬單明細(xì)  |   具體的上機(jī)消費(fèi)情況  |   上機(jī)情況表  |   收費(fèi)報(bào)表  |   DS-3  |   300次/月  |   50次/月  | 
|   F52  |   會(huì)員信息  |   用于會(huì)員統(tǒng)計(jì)  |   會(huì)員表  |   會(huì)員統(tǒng)計(jì)  |   DS-2  |   3次/月  |   500次/月  | 
|   F53  |   會(huì)員信息  |   提供會(huì)員信息  |   會(huì)員統(tǒng)計(jì)  |   收費(fèi)報(bào)表  |   DS-2  |   3次/月  |   500次/月  | 
4.處理邏輯
表6-4 處理邏輯
|   編號(hào)  |   處理邏輯名稱  |   簡(jiǎn)述  |   輸入數(shù)據(jù)流  |   輸出數(shù)據(jù)流  |   解釋  |   處理頻率  | 
|   P1.1  |   管理員設(shè)置  |   對(duì)管理員的基本信息進(jìn)行設(shè)計(jì)  |   F6 管理員信息  |   ?F7管理員信息  |   對(duì)管理員的基本信息進(jìn)行設(shè)計(jì)  |   300次/月  | 
|   P1.2  |   客戶端設(shè)置  |   對(duì)電腦的基本信息進(jìn)行設(shè)計(jì)  |   F2 機(jī)號(hào)信息  |   F1 機(jī)號(hào)信息 F3機(jī)號(hào)信息  |   對(duì)電腦的基本信息進(jìn)行設(shè)計(jì)  |   300次/月  | 
|   P1.3  |   時(shí)段設(shè)置  |   設(shè)置收費(fèi)的時(shí)間段  |   F4 時(shí)段信息  |   F8 時(shí)段信息 F9 時(shí)段信息  |   設(shè)置收費(fèi)的時(shí)間段  |   500次/月  | 
|   P1.4  |   費(fèi)率設(shè)置  |   設(shè)置電腦的收費(fèi)情況  |   F3 機(jī)號(hào)信息 F5 費(fèi)率信息 F9 時(shí)段信息  |   F10 費(fèi)率信息  |   設(shè)置電腦的收費(fèi)情況  |   5次/月  | 
|   P2.1  |   會(huì)員添加  |   添加新的會(huì)員  |   F12 會(huì)員ID  |   F11 會(huì)員ID  |   添加新的會(huì)員  |   3次/月  | 
|   P2.2  |   會(huì)員刪除  |   會(huì)員刪除自己信息  |   F14 會(huì)員ID F13 會(huì)員詳情信息  |   無  |   會(huì)員刪除自己信息  |   30次/月  | 
|   P2.3  |   會(huì)員修改  |   會(huì)員修改信息  |   F16 會(huì)員個(gè)人信息  |   F15 會(huì)員個(gè)人信息  |   會(huì)員修改信息  |   25次/月  | 
|   P2.4  |   賬號(hào)充值  |   用戶在賬號(hào)充值  |   F18 余額信息 F19 充值余額  |   F20 充值信息  |   用戶在賬號(hào)充值  |   20次/月  | 
|   P3.1  |   開機(jī)管理  |   處理電腦的開機(jī)  |   F21 檢測(cè)信號(hào)  |   F25 連接信息  |   處理電腦的開機(jī)  |   300次/月  | 
|   P3.2  |   限時(shí)機(jī)制  |   對(duì)會(huì)員的使用限時(shí)  |   F22 限時(shí)信息 F30 費(fèi)率信息  |   F27 機(jī)號(hào)信息  |   對(duì)會(huì)員的使用限時(shí)  |   300次/月  | 
|   P3.3  |   延時(shí)重啟設(shè)置  |   在規(guī)定的時(shí)間重啟電腦  |   F31 機(jī)號(hào)信息  |   F28 延時(shí)信息 F29 重啟信息  |   在規(guī)定的時(shí)間重啟電腦  |   500次/月  | 
|   P3.4  |   換機(jī)機(jī)制  |   處理換機(jī)信息  |   F23 機(jī)號(hào)信息  |   F32 換機(jī)信息  |   處理換機(jī)信息  |   5次/月  | 
|   P3.5  |   消息機(jī)制  |   處理會(huì)員的請(qǐng)求  |   F26 機(jī)號(hào)信息 F3 短消息 F34 會(huì)員請(qǐng)求  |   F24 短消息 F33 短消息  |   處理會(huì)員的請(qǐng)求  |   3次/月  | 
|   P4.1  |   賬號(hào)查詢  |   對(duì)會(huì)員的賬號(hào)查詢  |   F36 會(huì)員信息  |   F37 賬號(hào)信息  |   對(duì)會(huì)員的賬號(hào)查詢  |   30次/月  | 
|   P4.2  |   賬單查詢  |   對(duì)會(huì)員的賬單查詢  |   F43 賬單信息 F42 個(gè)人充值信息 F45 會(huì)員ID  |   F38 賬單列表信息 F44 賬單信息  |   對(duì)會(huì)員的賬單查詢  |   25次/月  | 
|   P4.3  |   充值明細(xì)  |   處理會(huì)員的充值記錄  |   F41 充值信息  |   F40 充值賬單信息  |   處理會(huì)員的充值記錄  |   300次/月  | 
|   P4.4  |   上機(jī)統(tǒng)計(jì)  |   統(tǒng)計(jì)電腦使用情況  |   F46 人數(shù)信息  |   F39 上機(jī)情況  |   統(tǒng)計(jì)電腦使用情況  |   300次/月  | 
|   P5.1  |   管理員統(tǒng)計(jì)  |   統(tǒng)計(jì)管理員信息  |   F47 管理員信息  |   F48? 管理員值班信息  |   統(tǒng)計(jì)管理員信息  |   500次/月  | 
|   P5.2  |   會(huì)員統(tǒng)計(jì)  |   統(tǒng)計(jì)會(huì)員信息  |   F52 會(huì)員信息  |   F53 會(huì)員信息  |   統(tǒng)計(jì)會(huì)員信息  |   5次/月  | 
|   P5.3  |   收費(fèi)報(bào)表  |   處理所有收費(fèi)信息并統(tǒng)計(jì)  |   F50 管理員信息 F53 會(huì)員信息 F51 賬單明細(xì)  |   F49 收費(fèi)明細(xì)  |   處理所有收費(fèi)信息并統(tǒng)計(jì)  |   3次/月  | 
5.數(shù)據(jù)存儲(chǔ)
表6-5 數(shù)據(jù)存儲(chǔ)
|   編號(hào)  |   數(shù)據(jù)存儲(chǔ)名稱  |   簡(jiǎn)述  |   數(shù)據(jù)存儲(chǔ)組成  |   相關(guān)聯(lián)的處理  | 
|   S1  |   管理員表  |   用于存放管理員的基本信息  |   DS-3  |   P1.1,P5.1,P5.3  | 
|   S2  |   電腦表  |   用于存放電腦的基本信息  |   DS-8  |   P1.2,P3.2,P3.3,P3.5  | 
|   S3  |   費(fèi)率表  |   對(duì)不同電腦不同時(shí)間段的收費(fèi)標(biāo)準(zhǔn)  |   DS-7  |   P1.4,P3.2  | 
|   S4  |   會(huì)員表  |   用于存放會(huì)員的基本信息  |   DS-10  |   P2.1,P2.2,P2.3,P2.4,P4.1  | 
|   S5  |   充值表  |   會(huì)員的充值記錄  |   DS-12  |   P2.4,P4.2,P4.3  | 
|   S6  |   上機(jī)情況表  |   會(huì)員的上機(jī)情況  |   DS-2  |   P3.1,P3.3,P3.4,P4.4,5.3  | 
|   S7  |   短消息表  |   會(huì)員向管理員提出的請(qǐng)求  |   DS-9  |   P3.5  | 
|   S8  |   時(shí)段表  |   不同時(shí)間的不同收費(fèi)標(biāo)準(zhǔn)  |   DS-14  |   P1.3  | 
|   S9  |   賬單表  |   會(huì)員下機(jī)后的消費(fèi)單  |   DS-15  |   P4.2  | 
E-R圖
?
?
?
?
?
?關(guān)系模式
會(huì)員(會(huì)員賬號(hào),會(huì)員身份證號(hào),會(huì)員年齡,會(huì)員密碼,會(huì)員余額,會(huì)員電話號(hào),會(huì)員QQ,會(huì)員微信,會(huì)員職業(yè),會(huì)員性別,會(huì)員地址,會(huì)員等級(jí))
電腦(電腦編號(hào),電腦顯卡,電腦CPU,電腦顯示器,電腦鍵鼠,電腦收費(fèi)等級(jí))
管理員(管理員賬號(hào),管理員身份證號(hào),管理員年齡,管理員密碼,管理員電話號(hào),管理員QQ,管理員微信,管理員職業(yè),管理員性別,管理員地址,管理員權(quán)限)
時(shí)段表(時(shí)段編號(hào),收費(fèi)時(shí)間段,收費(fèi)金額)
費(fèi)率表(費(fèi)率編號(hào),電腦編號(hào),會(huì)員賬號(hào),管理員賬號(hào),電腦收費(fèi)等級(jí))
上機(jī)情況表(上機(jī)情況編號(hào),電腦編號(hào),會(huì)員賬號(hào),管理員賬號(hào),用戶上機(jī)時(shí)間,會(huì)員下機(jī)時(shí)間,會(huì)員上機(jī)時(shí)長(zhǎng),電腦收費(fèi)等級(jí),收費(fèi)時(shí)間段,電腦狀態(tài),延長(zhǎng)時(shí)間,換機(jī)機(jī)號(hào),重啟,網(wǎng)絡(luò)狀態(tài),延時(shí)時(shí)刻)
使用記錄表(使用記錄編號(hào),電腦編號(hào),會(huì)員賬號(hào),管理員賬號(hào),用戶上機(jī)時(shí)間,會(huì)員下機(jī)時(shí)間,會(huì)員上機(jī)時(shí)長(zhǎng),電腦收費(fèi)等級(jí),電腦收費(fèi)時(shí)間段,電腦狀態(tài))
管理員工作表(工作編號(hào),管理員賬號(hào),管理員姓名,工作表編號(hào),管理員電話,上班時(shí)間,下班時(shí)間,工作時(shí)長(zhǎng))
維修記錄表(維修編號(hào),電腦編號(hào),管理員賬號(hào),維修費(fèi)用,維修內(nèi)容)
賬單表(賬單編號(hào),會(huì)員上機(jī)時(shí)間,會(huì)員下機(jī)時(shí)間,會(huì)員上機(jī)時(shí)長(zhǎng),會(huì)員消費(fèi),會(huì)員其他消費(fèi),用戶賬號(hào),管理員賬號(hào),電腦編號(hào),會(huì)員姓名,管理員姓名)
充值表(充值編號(hào),會(huì)員賬戶,管理員賬戶,充值金額,充值時(shí)間,會(huì)員姓名,管理員姓名)
消息表(消息編號(hào),會(huì)員賬戶,管理員賬戶,用戶姓名,管理員姓名,會(huì)員消息,管理員消息,會(huì)員等級(jí))
數(shù)據(jù)庫(kù)實(shí)施
1. 用戶表
create table User0( UserAccount varchar2(10) not null, UserID varchar2(10) not null, UserAge int, UserName varchar2(40), UserPassword varchar2(10), UserBalance float, UserPhone varchar2(10), UserQQ varchar2(10), UserWechat varchar2(10), UserProfession varchar2(30), UserSex varchar2(10), UserAddress varchar2(40), UserGrade varchar2(20), constraint PK_UserAccount primary key (UserAccount), constraint CK_UserAge check (UserAge>=0 and UserAge <= 100), constraint CK_UserBalance check (UserBalance>=0), constraint CK_UserGrade check (UserGrade = '鉆石' or UserGrade = '金卡' or UserGrade = '銀卡' or UserGrade = '普通'), constraint CK_UserSex check (UserSex = '男' or UserSex = '女') );2. 管理員表
create table Administrator( AdministratorAccount varchar2(10) not null, AdministratorID varchar2(10) not null, AdministratorAge int, AdministratorName varchar2(40), AdministratorPassword varchar2(10), AdministratorQQ varchar2(10), AdministratorWechat varchar2(10), AdministratorProfession varchar2(10), AdministratorPhone varchar2(10), AdministratorSex varchar2(10), AdministratorAddress varchar2(40), AdministratorRight varchar2(20), constraint PK_AdministratorAccount primary key (AdministratorAccount), constraint CK_AdministratorAge check (AdministratorAge>=0 and AdministratorAge <= 100), constraint CK_AdministratorRight check (AdministratorRight = '普通' or AdministratorRight = '高級(jí)'), constraint CK_AdministratorSex check (AdministratorSex = '男' or AdministratorSex = '女') );3. 電腦表
create table Computer( PC_ID varchar2(10) not null, PC_Gpu varchar2(40) , PC_CPU varchar2(40), PC_Display varchar2(40), PC_Keyboard varchar2(40), PC_charge_grade int, constraint PK_PC_ID primary key (PC_ID), constraint CK_PC_charge_grade check (PC_charge_grade = 1 or PC_charge_grade = 2 or PC_charge_grade = 3) );4. 時(shí)段表
create table Time_Frame( Time_Frame_ID varchar2(10) not null, T_start date, T_end date, Charge_amount float, constraint PK_Time_Frame_ID primary key (Time_Frame_ID), constraint CK_Charge_amount check (Charge_amount >0) );5. 費(fèi)率表
create table Charge_List( Rate_ID varchar2(10) not null, PC_ID varchar2(10), UserAccount varchar2(10), AdministratorAccount varchar2(10), PC_charge_grade int ,constraint PK_Rate_ID primary key (Rate_ID), constraint FK_PC_ID foreign key (PC_ID) references Computer(PC_ID), constraint FK_UserAccount foreign key (UserAccount) references User0(UserAccount), constraint FK_AdministratorAccount foreign key (AdministratorAccount) references Administrator(AdministratorAccount), constraint CK_PC_charge_grade1 check (PC_charge_grade = 1 or PC_charge_grade = 2 or PC_charge_grade = 3) );6. 上機(jī)情況表
create table Up_Computer_List( Up_computer_ID varchar2(10) not null, PC_ID varchar2(10), UserAccount varchar2(10), AdministratorAccount varchar2(10), UserUP_time date , UserDown_time date, UserDuration float, PC_charge_grade int, T_start date, T_end date, PC_state varchar2(10), Extend_time_length float, Extend_PC_ID varchar2(10), Restart varchar2(10), Network_State varchar2(10), Extend_time date, Charge_amount float, primary key (Up_computer_ID), foreign key (PC_ID) references Computer(PC_ID), foreign key (UserAccount) references User0(UserAccount), foreign key (AdministratorAccount) references Administrator(AdministratorAccount), foreign key (Extend_PC_ID) references Computer(PC_ID), check (PC_charge_grade = 1 or PC_charge_grade = 2 or PC_charge_grade = 3), check(UserDuration>=0), check(Extend_time_length>=0), check(Charge_amount>=0), check(PC_state='正常'or PC_state= '維修'), check(Restart='是'or Restart= '否'), check(Network_State='是'or Network_State= '否') );7. 使用記錄表
create table Use_Computer_List( Use_Computer_ID varchar2(10) not null, PC_ID varchar2(10), UserAccount varchar2(10), AdministratorAccount varchar2(10), UserUP_time date , UserDown_time date, UserDuration float, PC_charge_grade int, T_start date, T_end date, PC_state varchar2(10), Charge_amount float, primary key (Use_Computer_ID), foreign key (PC_ID) references Computer(PC_ID), foreign key (UserAccount) references User0(UserAccount), foreign key (AdministratorAccount) references Administrator(AdministratorAccount), check (PC_charge_grade = 1 or PC_charge_grade = 2 or PC_charge_grade = 3), check(UserDuration>=0), check(Charge_amount>=0), check(PC_state='正常'or PC_state= '維修') );8. 管理員工作表
create table Administrator_Work_List( Administrator_work_ID varchar2(10) not null, AdministratorAccount varchar2(10), Administrator_Name varchar2(40), AdministratorPhone varchar2(10), AdministratorUp_time date , AdministratorDown_time date, AdministrationDuration float, primary key (Administrator_work_ID), foreign key (AdministratorAccount) references Administrator(AdministratorAccount), check(AdministrationDuration>=0) );9. 維修記錄表
create table Maintain_List( PC_maintain_ID varchar2(10) not null, PC_ID varchar2(10), AdministratorAccount varchar2(10), Maintain_Content varchar2(80), PC_maintain_Money float, primary key (PC_maintain_ID), foreign key (AdministratorAccount) references Administrator(AdministratorAccount), foreign key (PC_ID) references Computer(PC_ID), check(PC_maintain_Money>=0) );10. 賬單表
create table Bill_List( Bill_ID varchar2(10) not null, PC_ID varchar2(10), UserAccount varchar2(10), AdministratorAccount varchar2(10), User_name varchar2(40), Administrator_Name varchar2(40), UserUP_time date, UserDown_time date, UserDuration float, User_consume float, User_other_consume float,primary key (Bill_ID), foreign key (AdministratorAccount) references Administrator(AdministratorAccount), foreign key (UserAccount) references User0(UserAccount), foreign key (PC_ID) references Computer(PC_ID), check(UserDuration>=0), check(User_consume>=0), check(User_other_consume>=0) );11. 充值表
create table User_recharge_List( Recharge_ID varchar2(10) not null, UserAccount varchar2(10), AdministratorAccount varchar2(10), User_name varchar2(40), Administrator_Name varchar2(40), User_Recharge_time date, User_recharge_amount float,primary key (Recharge_ID), foreign key (AdministratorAccount) references Administrator(AdministratorAccount), foreign key (UserAccount) references User0(UserAccount), check(User_recharge_amount>=0) );12. 信息表
create table Maeeage_List ( Message_ID varchar2(10) not null, UserAccount varchar2(10), AdministratorAccount varchar2(10), User_name varchar2(40), Administrator_Name varchar2(40), User_massage varchar2(50), UserGrade varchar2(20), Administrator_massage varchar2(50),primary key (Message_ID), foreign key (AdministratorAccount) references Administrator(AdministratorAccount), foreign key (UserAccount) references User0(UserAccount), check (UserGrade = '鉆石' or UserGrade = '金卡' or UserGrade = '銀卡' or UserGrade = '普通') );存儲(chǔ)過程
1. 結(jié)算賬單
create or replace procedure PRO_BILL( UserAccount_n in bill_list.useraccount%type, User_other_consume_n in bill_list.user_other_consume%type) is Bill_ID_n varchar2(10);PC_ID_n bill_list.pc_id%type; AdministratorAccount_n bill_list.administratoraccount%type; User_name_n bill_list.user_name%type;Administrator_Name_n bill_list.administrator_name%type; UserUP_time_n bill_list.userup_time%type;UserDown_time_n bill_list.userdown_time%type;UserDuration_n bill_list.userduration%type;User_consume_n bill_list.user_consume%type;userbalance_n user0.userbalance%type;begin --獲取會(huì)員余額信息select User0.Userbalance into userbalance_nfrom User0where User0.Useraccount = UserAccount_n;--獲取賬單信息select PC_ID,AdministratorAccount,User_name,Administrator_Name,UserUP_time,UserDown_time,UserDuration,User_consumeinto PC_ID_n,AdministratorAccount_n,User_name_n,Administrator_Name_n,UserUP_time_n,UserDown_time_n,UserDuration_n,User_consume_nfrom up_computer_listwhere up_computer_list.useraccount = UserAccount_n;--設(shè)置賬單編號(hào)Bill_ID_n := to_char(useraccount_n+UserUP_time_n);--添加賬單信息 dbms_output.put_line('這是您的賬單:'||to_char(User_consume_n+User_other_consume_n)); insert into Bill_list values(Bill_ID_n,PC_ID_n,UserAccount_n,AdministratorAccount_n,User_name_n,Administrator_Name_n,UserUP_time_n ,UserDown_time_n,UserDuration_n ,User_consume_n,User_other_consume_n); commit;--修改會(huì)員的余額信息update user0 set user0.userbalance = userbalance_n - User_consume_n - User_other_consume_nwhere User0.Useraccount = UserAccount_n;dbms_output.put_line('賬單已支付,歡迎下次光臨!!!'); commit; end PRO_BILL;2. 會(huì)員上機(jī)
create or replace procedure PRO_UP_PC( PC_ID_n in up_computer_list.pc_id%type, UserAccount_n in up_computer_list.useraccount%type, AdministratorAccount_n in up_computer_list.administratoraccount%type, UserUP_time_n in up_computer_list.userup_time%type ,Extend_time_length_n in up_computer_list.extend_time_length%type, Extend_PC_ID_n in up_computer_list.extend_pc_id%type, Restart_n in up_computer_list.restart%type, Network_State_n in up_computer_list.network_state%type, Extend_time_n in up_computer_list.extend_time%type, ) is Up_computer_ID_n up_computer_list.pc_id%type;PC_state_n up_computer_list.pc_id%type;User_consume_n up_computer_list.pc_id%type;UserGrade_n user0.usergrade%type;discount float;UserDown_time_n date;UserDuration_n float;PC_charge_grade_n int;T_start_n date;T_end_n date;Charge_amount_n float;begin --獲取電腦狀態(tài)select computer.pc_stateinto PC_state_nfrom computerwhere computer.pc_id = PC_ID_n;--修改電腦使用狀態(tài)update computer set computer.pc_state_1 = 1where computer.pc_id = PC_ID_n;commit;--設(shè)置上機(jī)編號(hào)Up_computer_ID_n := to_char(UserUP_time_n + useraccount_n);--獲取上機(jī)信息select PC_ID,AdministratorAccount,User_name,Administrator_Name,UserUP_time,UserDown_time,UserDuration_n,User_consume_ninto PC_ID_n,AdministratorAccount_n,User_name_n,Administrator_Name_n,UserUP_time_n,UserDown_time_n,UserDuration_n,User_consume_nfrom up_computer_listwhere up_computer_list.useraccount = UserAccount_n;--設(shè)置上機(jī)編號(hào)Bill_ID_n := to_char(useraccount+UserUP_time_n);--添加上機(jī)信息 dbms_output.put_line('這是您的上機(jī)情況'); insert into up_computer_list values(Up_computer_ID_n,PC_ID_n,UserAccount_n,AdministratorAccount_n,UserUP_time_n,UserDown_time_n,UserDuration_n,PC_charge_grade_n,T_start_n,T_end_n,PC_state_n,Extend_time_length_n,Extend_PC_ID_n,Restart_n,Network_State_n,Extend_time_n,Charge_amount_nUser_consume_n,); commit; end PRO_UP_PC;3. 會(huì)員下機(jī)
create or replace procedure PRO_DOWN_PC( PC_ID_n in up_computer_list.pc_id%type, UserAccount_n in up_computer_list.useraccount%type, AdministratorAccount_n in up_computer_list.administratoraccount%type, UserDown_time_n in up_computer_list.userup_time%type ,UserDuration_n in up_computer_list.userduration%type) is User_consume_n up_computer_list.pc_id%type;UserGrade_n user0.usergrade%type;discount float;PC_charge_grade_n int;T_start_n date;T_end_n date;Charge_amount_n float;UserUp_time_n date;begin --修改電腦使用狀態(tài)update computer set computer.pc_state_1 = 0where computer.pc_id = PC_ID_n;commit;--獲取用戶等級(jí)select UserGrade into UserGrade_n from user0 where user0.useraccount = UserAccount_n;if cuslevel='鉆石' then discount:=0.9; elsif cuslevel='金卡' then discount:=0.93; elsif cuslevel='銀卡' then discount:=0.96; else discount:=1; end if; --獲取上機(jī)時(shí)間select UserUp_timeinto UserUp_time_nfrom up_computer_listwhere up_computer_list.useraccount = UserAccount_n and up_computer_list.administratoraccount = AdministratorAccount_n and up_computer_list.pc_id = PC_ID_n;--獲取收費(fèi)等級(jí) select PC_charge_gradeinto PC_charge_grade_nfrom computerwhere computer.PC_ID = PC_ID_n;--獲取收費(fèi)時(shí)間段select Charge_amount, t_start ,t_endinto Charge_amount_n, T_start_n, T_end_nfrom time_framewhere time_frame.t_start <= UserUp_time_n and time_frame.t_end >= UserDown_time_n;--計(jì)算消費(fèi)金額User_consume_n := (Charge_amount_n*PC_charge_grade_n*discount*UserDuration_n);--修改上機(jī)信息 dbms_output.put_line('這是您的下機(jī)情況'); update up_computer_list set up_computer_list.userdown_time = UserDown_time_n,up_computer_list.userduration = UserDuration_n,up_computer_list.user_consume = User_consume_n,up_computer_list.pc_charge_grade = PC_charge_grade_n,up_computer_list.t_start = T_start_n,up_computer_list.t_end = T_end_n,up_computer_list.charge_amount = Charge_amount_n; commit; end PRO_DOWN_PC;4. 工作處理
create or replace procedure PRO_WORK( AdministratorAccount_n in Administrator.AdministratorAccount%type, AdministratorUp_time_n in administrator_work_list.administratorup_time%type ,AdministratorDown_time_n in administrator_work_list.administratordown_time%type, AdministrationDuration_n in administrator_work_list.administrationduration%type, ) is Administrator_work_ID_n varchar2(10); Administrator_Name_n varchar2(40);AdministratorPhone_n varchar2(10);begin --獲取管理員信息select AdministratorName, AdministratorPhoneinto Administrator_Name_n, AdministratorPhone_nfrom Administratorwhere Administrator.AdministratorAccount = AdministratorAccount_n;--設(shè)置工作編號(hào)Administrator_work_ID_n := to_char(AdministratorUp_time_n + AdministratorAccount_n);--添加上機(jī)信息 dbms_output.put_line( '這是您的工作情況'); insert into administrator_work_list values(Administrator_work_ID_n,AdministratorAccount_n,Administrator_Name_n,AdministratorPhone_n,AdministratorUp_time_n,AdministratorDown_time_n,AdministrationDuration_n); commit; end PRO_WORK;5. 會(huì)員充值
create or replace procedure PRO_RECHARGE( AdministratorAccount_n in Administrator.AdministratorAccount%type, UserAccount_n in user0.useraccount%type,User_Recharge_time_n in User_Recharge_List.User_Recharge_Time%type,User_recharge_amount_n in user_recharge_list.user_recharge_amount%type,) is Recharge_ID_n varchar2(10);User_name_n varchar2(40);Administrator_Name_n varchar2(40);begin --獲取管理員信息select AdministratorNameinto Administrator_Name_nfrom Administratorwhere Administrator.AdministratorAccount = AdministratorAccount_n;--獲取會(huì)員信息select UserNameinto User_name_nfrom user0where user0.useraccount = UserAccount_n;--設(shè)置充值編號(hào)Recharge_ID_n := to_char(UserAccount_n+ 'cz' + AdministratorAccount_n);--添加上機(jī)信息 dbms_output.put_line( '這是您的充值情況'); insert into User_Recharge_List values(Recharge_ID_n,UserAccount_n,AdministratorAccount_n,User_name_n,Administrator_Name_n,User_Recharge_time_n,User_recharge_amount_n); commit;--修改會(huì)員的余額信息update user0 set user0.userbalance = user0.userbalance_n + User_recharge_amount_nwhere User0.Useraccount = UserAccount_n;dbms_output.put_line('充值成功,歡迎下次充值!!!'); commit; end PRO_RECHARGE;6. 維修電腦
create or replace procedure PRO_MAINATION( AdministratorAccount_n in Administrator.AdministratorAccount%type, PC_ID_n in computer.pc_id%type ,Maintain_Content_n in maintain_list.maintain_content%type, PC_maintain_Money_n in maintain_list.pc_maintain_money%type, Maintain_time_n in maintain_list.maintain_time%type) is PC_maintain_ID_n varchar2(10);begin --設(shè)置維修編號(hào)PC_maintain_ID_n := to_char('wx' + AdministratorAccount_n + Maintain_time_n);--添加維修信息 dbms_output.put_line( '這是您的工作情況'); insert into administrator_work_list values(PC_maintain_ID_n,PC_ID_n,AdministratorAccount_n,Maintain_Content_n,PC_maintain_Money_n,Maintain_time_n); commit; end PRO_MAINATION;7. 更新管理員
create or replace procedure PRO_ADMINISTRATER( AdministratorAccount_n in administrator.administratoraccount%type, AdministratorID_n in administrator.administratorid%type, AdministratorAge_n in administrator.administratorage%type, AdministratorName_n in administrator.administratorname%type, AdministratorPassword_n in administrator.administratorpassword%type, AdministratorQQ_n in administrator.administratorqq%type, AdministratorWechat_n in administrator.administratorwechat%type, AdministratorProfession_n in administrator.administratorprofession%type, AdministratorPhone_n in administrator.administratorphone%type, AdministratorSex_n in administrator.administratorsex%type, AdministratorAddress_n in administrator.administratoraddress%type, AdministratorRight_n in administrator.administratorright%type,is_change in int ) is begin --1 表示為插入,0 表示為修改if is_change = 1 theninsert into administrator values(AdministratorAccount_n,AdministratorID_n,AdministratorAge_n,AdministratorName_n,AdministratorPassword_n,AdministratorQQ_n,AdministratorWechat_n,AdministratorProfession_n,AdministratorPhone_n,AdministratorSex_n,AdministratorAddress_n,AdministratorRight_n,); elseupdate administrator set AdministratorAccount = AdministratorAccount_n,AdministratorID = AdministratorID_n,AdministratorAge = AdministratorAge_n,AdministratorName = AdministratorName_n,AdministratorPassword = AdministratorPassword_n,AdministratorQQ = AdministratorQQ_n,AdministratorWechat = AdministratorWechat_n,AdministratorProfession = AdministratorProfession_n,AdministratorPhone = AdministratorPhone_n,AdministratorSex = AdministratorSex_n,AdministratorAddress = AdministratorAddress_n,AdministratorRight = AdministratorRight_n,where administrator.AdministratorAccount = AdministratorAccount_n;end if;commit; end PRO_ADMINISTRATER;8. 更新電腦
create or replace procedure PRO_COMPUTER( PC_ID_n in computer.pc_id%type,PC_Gpu_n in computer.pc_gpu%type,PC_CPU_n in computer.pc_cpu%type,PC_Display_n in computer.pc_display%type,PC_Keyboard_n in computer.pc_keyboard%type,PC_charge_grade_n in computer.pc_charge_grade%type,PC_STATE_n in computer.pc_state%type,is_change in int) is PC_STATE_1_n int;begin PC_STATE_1_n := 0;--1 表示為插入,0 表示為修改if is_change = 1 theninsert into computer values(PC_ID_n,PC_Gpu_n,PC_CPU_n,PC_Display_n,PC_Keyboard_n,PC_charge_grade_n,PC_STATE_1_n,PC_STATE_n); elseupdate computer set PC_ID = PC_ID_n,PC_Gpu = PC_Gpu_n,PC_CPU = PC_CPU_n,PC_Display = PC_Display_n,PC_Keyboard = PC_Keyboard_n,PC_charge_grade = PC_charge_grade_n,PC_STATE_1 = PC_STATE_1_n,PC_STATE = PC_STATE_nwhere computer.pc_id = PC_ID_n;end if;commit; end PRO_COMPUTER;9. 更新會(huì)員
create or replace procedure PRO_USERS( UserAccount_n in user0.useraccount%type, UserID_n in user0.userid%type,UserAge_n in user0.userage%type,UserName_n in user0.username%type,UserPassword_n in user0.userpassword%type, UserBalance_n in user0.userbalance%type,UserPhone_n in user0.userphone%type,UserQQ_n in user0.userqq%type,UserWechat_n in user0.userwechat%type,UserProfession_n in user0.userprofession%type,UserSex_n in user0.usersex%type,UserAddress_n in user0.useraddress%type,UserGrade_n in user0.usergrade%type,is_change in int ) is begin --1 表示為插入,0 表示為修改if is_change = 1 theninsert into user0 values(UserAccount_n,UserID_n, UserAge_n, UserName_n, UserPassword_n, UserBalance_n, UserPhone_n, UserQQ_n, UserWechat_n, UserProfession_n, UserSex_n, UserAddress_n, UserGrade_n ); elseupdate user0 set UserAccount = UserAccount_n,UserID = UserID_n, UserAge = UserAge_n, UserName = UserName_n, UserPassword = UserPassword_n, UserBalance = UserBalance_n, UserPhone = UserPhone_n, UserQQ = UserQQ_n, UserWechat = UserWechat_n,UserProfession = UserProfession_n, UserSex = UserSex_n, UserAddress = UserAddress_n, UserGrade = UserGrade_nwhere user0.UserAccount = UserAccount_n;end if;commit; end PRO_USERS;觸發(fā)器
會(huì)員等級(jí)變換
CREATE OR REPLACE TRIGGER TRI_POINTS after insert on Bill_List for each row declare pragma autonomous_transaction;Grage_n user0.usergrade%type; comsume_n bill_list.user_consume%type; begin --獲取會(huì)員等級(jí) select user0.usergrade into Grage_n from user0 where user0.useraccount=:new.useraccount; --獲取會(huì)員消費(fèi)金額 select sum(bill_list.user_consume + bill_list.user_other_consume) into comsume_n from bill_list where bill_list.bill_id=:new.bill_id; --計(jì)算等級(jí) if comsume_n>600 and comsume_n<1400 then Grage_n:='銀卡'; elsif comsume_n>1400 and comsume_n<2200 then Grage_n:='金卡'; elsif comsume_n>2200 then Grage_n:='鉆石'; else Grage_n:='普通'; end if; --更新會(huì)員等級(jí) update user0 set user0.usergrade=Grage_nwhere useraccount =:new.useraccount; commit; end TRI_POINTS;余量不足提醒
CREATE OR REPLACE TRIGGER TRI_computer after update on computer for each row declare shu int; begin select count(computer.pc_id)into shufrom computerwhere computer.pc_state_1 = 0;if shu <5 then dbms_output.put_line('當(dāng)前空閑電腦僅有 '||to_char(shu) || ' 臺(tái)!!!'); end if; end TRI_computer;總結(jié)
以上是生活随笔為你收集整理的网吧管理系统数据库设计的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: [导入]ASP.NET MVC的WebS
 - 下一篇: OpenCV修养(三)——图像处理(上)