日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

网吧管理系统数据库设计

發布時間:2023/12/9 windows 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 网吧管理系统数据库设计 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

摘? 要:網吧管理系統是為解決大型網吧面臨的復雜電腦管理業務流程和繁瑣的客戶服務、信息處理業務而開發的管理系統。它主要包含系統管理、會員管理、日常管理、查詢管理、統計報表五個模塊。數據庫設計過程中主要進行了分析網吧電腦使用業務方面的需求,進行概念結構、邏輯結構和物理結構的設計,并通過建立視圖、存儲過程和觸發器實現了滿足不同用戶的不同需求,如針對會員的上機和服務,針對管理員的賬單查看和收費時間計劃管理以及針對不同等級的會員的不同服務。實現了較為自動化、人性化的網吧管理、會員服務、信息管理的管理功能。

1、需求分析

本系統主要任務是實現網吧信息管理系統。系統分為以下五個功能模塊:系統管理、會員管理、日常管理、查詢管理、統計報表。具體功能可以從以下五個方面介紹:

  • 系統管理:
  • 設置管理員的基本信息,對管理員的基本信息進行操作。
  • 設置電腦的基本信息,對電腦的基本信息進行操作。
  • 對不同時間短的收費情況進行設置。
  • 不同計算機,不同用戶的收費進行設置。
  • 會員管理:
  • 添加新注冊的會員,并初始化會員的詳細信息。
  • 注銷以往注冊的會員,并刪除該會員的所有基本信息。
  • 修改會員的基本信息,用于修改用戶的個人信息。
  • 會員充值,會員對自己的賬戶進行充值,方便后續使用電腦。
  • 日常管理:
  • 開機管理:用戶上機后,將用戶的信息和電腦的信息存入上機情況表中。
  • 限時管理:對用戶的上機情況進行限制,根據會員的賬戶余額和網吧要關閉的時間進行限制。
  • 延時重啟設置:用戶根據自己的時間安排先占用計算機,但是不會收費,到需要的時間自動打開計算機。
  • 換機機制:用戶根據自己的需求更換電腦。
  • 消息機制:會員可以使用該功能和管理員進行聯系,提出自己想要管理員提供的服務。
  • 查詢管理:
  • 賬號查詢:對會員的基本信息進行查詢。
  • 賬單查詢:對會員的所有消費賬單進行查詢。
  • 充值明細:對會員的充值記錄和消費記錄進行查詢。
  • 上機統計:統計用戶的上機情況和所用電腦的使用記錄。
  • 統計報表:
  • 管理員統計:按照不同條件對管理員的數據進行統計。
  • 會員統計:按照不同的條件對會員數據進行統計。
  • 收費報表:查詢所有用戶的充值情況和消費情況
  • 數據流程圖

    ?

    ?

    ?

    ?

    ?

    ?

    數據字典?

    1.數據項

    表6-1 數據項

    編號

    屬性名

    含義

    數據類型

    長度

    約束條件

    DI-01

    UserAccount

    會員賬號

    Varchar2

    40

    DI-02

    UserID

    會員身份證號

    Varchar2

    40

    DI-03

    UserAge

    會員年齡

    Number

    40

    1-100

    DI-04

    UserPassword

    會員密碼

    Varchar2

    40

    DI-05

    UserBalance

    會員余額

    Number

    40

    DI-06

    UserPhone

    會員電話號

    Varchar2

    40

    DI-07

    UserQQ

    會員QQ

    Varchar2

    40

    DI-08

    UserWechat

    會員微信

    Varchar2

    40

    DI-09

    UserProfession

    會員職業

    Varchar2

    40

    DI-10

    UserSex

    會員性別

    Number

    40

    0 or 1

    DI-11

    UserAddress

    會員地址

    Varchar2

    40

    DI-12

    UserGrade

    會員等級

    Number

    40

    DI-13

    AdministratorAccount

    管理員賬號

    Varchar2

    40

    DI-14

    AdministratorID

    管理員身份證號

    Varchar2

    40

    DI-15

    AdministratorAge

    管理員年齡

    Number

    40

    1-100

    DI-16

    AdministratorPassword

    管理員密碼

    Varchar2

    40

    DI-17

    AdministratorPhone

    管理員電話號

    Varchar2

    40

    DI-18

    AdministratorQQ

    管理員QQ

    Varchar2

    40

    DI-19

    AdministratorWechat

    管理員微信

    Varchar2

    40

    DI-20

    AdministratorProfession

    管理員職業

    Varchar2

    40

    DI-21

    AdministratorSex

    管理員性別

    Number

    40

    0 or 1

    DI-22

    AdministratorAddress

    管理員地址

    Varchar2

    40

    DI-23

    AdministratorRight

    管理員權限

    Number

    40

    0 or 1

    DI-24

    UserUP_time

    會員上機時間

    Date

    40

    DI-25

    UserDown_time

    會員下機時間

    Date

    40

    DI-26

    AdministratorUp_time

    管理員上班時間

    Date

    40

    DI-27

    AdministratorDown_time

    管理員下班時間

    Date

    40

    DI-28

    UserDuration

    會員上機時長

    Number

    40

    1-100

    DI-29

    AdministrationDuration

    管理員工作時長

    Number

    40

    0-24

    DI-30

    User_recharge_amount

    會員充值金額

    Number

    40

    DI-31

    User_other_consume

    會員其他消費金額

    Number

    40

    DI-32

    Bill_ID

    賬單編號

    Number

    40

    DI-33

    User_consume

    會員消費金額

    Varchar2

    40

    DI-34

    PC_ID

    電腦編號

    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

    電腦收費等級

    Date

    40

    DI-41

    PC_charge_time

    收費時間段

    Date

    40

    DI-42

    Charge_money

    收費金額

    Varchar2

    40

    DI-43

    User_massage

    會員消息

    Varchar2

    40

    DI-44

    PC_state

    電腦使用狀態

    Number

    40

    0 or 1

    DI-45

    Rest_time

    會員可用時間

    Number

    40

    DI-46

    Extend_time_length

    延時啟動時長

    Number

    40

    DI-47

    Extend_PC_ID

    延時啟動機號

    Varchar2

    40

    DI-48

    Restart

    是否重新啟動

    Varchar2

    40

    DI-49

    Network_State

    電腦網絡狀態

    Number

    40

    0 or 1

    DI-50

    Extend_time

    延時啟動時間點

    Date

    40

    當前時間

    DI-51

    Administrator_work_ID

    工作單編號

    Varchar2

    40

    DI-52

    PC_maintain_ID

    維修單編號

    Varchar2

    40

    DI-53

    User_Recharge_time

    會員充值時間

    number

    40

    大于0

    DI-54

    User_name

    會員姓名

    Varchar2

    40

    DI-55

    Administrator_Name

    管理員姓名

    Varchar2

    40

    DI-56

    Maintain_Content

    維修內容

    Varchar2

    40

    2.數據結構

    表6-2 數據結構

    含義

    組成

    會員表

    UserAccountUserIDUserAgeUserNameUserPasswordUserBalanceUserPhoneUserQQUserWechatUserProfessionUserSexUserAddressUserGrade

    管理員表

    AdministratorAccountAdministratorIDAdministratorAgeAdministratorNameAdministratorPasswordAdministratorPhoneAdministratorQQAdministratorWechatAdministratorProfessionAdministratorSexAdministratorAddressAdministratorRight

    電腦表

    PC_IDPC_GpuPC_CPUPC_DisplayPC_KeyboardPC_charge_grade

    賬單(下機)

    UserUP_timeUserDown_timeUserDurationUser_consumeBill_IDUser_other_consumeUserAccountAdministratorAccountPC_IDUser_nameAdministrator_name

    電腦使用記錄

    PC_IDUserAccountAdministratorAccountUserUP_timeUserDown_timeUserDurationPC_charge_gradePC_charge_timePC_state

    電腦維修記錄

    AdministratorAccountPC_maintain_IDPC_maintain_MoneyMaintain_Content

    上機情況表

    PC_IDUserAccountAdministratorAccountUserUP_timeUserDown_timeUserDurationPC_charge_gradePC_charge_timePC_stateExtend_time_lengthExtend_PC_IDRestartNetwork_StateExtend_time

    會員充值表

    UserAccountAdministratorAccountUser_recharge_amountUser_Recharge_time User_nameAdministrator_Name

    會員消息表

    UserAccountAdministratorAccountUser_nameAdministrator_NameUser_massageUserGrade

    費率表

    PC_IDUserAccountAdministratorAccountPC_charge_gradePC_charge_timeCharge_money

    管理員工作表

    AdministratorAccountAdministrator_NameAdministrator_work_IDAdministratorPhoneAdministratorUp_timeAdministratorDown_timeAdministrationDuration

    3.數據流

    表6-3 數據流

    編號

    數據流名稱

    簡述

    數據流來源

    數據流去向

    數據流組成

    數據流量

    高峰流量

    F1

    機號信息

    將電腦信息上傳至電腦設置

    管理員

    客戶端設置

    DS-3

    300/

    500/

    F2

    機號信息

    電腦的基本信息存入電腦表

    客戶端設置

    電腦表

    DS-20

    300/

    500/

    F3

    機號信息

    電腦的基本信息傳入費率設置

    客戶端設置

    費率設置

    DS-10

    3/

    6/

    F4

    時段信息

    傳輸收費的時間段

    管理員

    時段設置

    DS-17

    30/

    60/

    F5

    費率信息

    傳輸收費的金額等信息

    管理員

    費率設置

    DS-18

    30/

    60/

    F6

    管理員信息

    傳輸管理員信息用于設置

    管理員

    管理員設置

    DS-11

    5/

    10/

    F7

    管理員信息

    存儲管理員信息

    管理員設置

    管理員表

    DS-15

    5/

    10/

    F8

    時段信息

    存儲收費時段信息

    時段設置

    時段表

    DS-12

    300/

    500/

    F9

    時段信息

    將時段信息傳到費率設置

    時段設置

    費率設置

    DS-10

    3/

    6/

    F10

    費率信息

    存儲費率信息

    費率設置

    費率表

    DS-3

    300/

    500/

    F11

    會員ID

    會員信息存儲到會員表

    會員添加

    會員表

    DS-13

    300/

    500/

    F12

    會員ID

    傳輸會員信息用于添加

    管理員

    會員添加

    DS-3

    300/

    500/

    F13

    會員詳情信息

    從會員表中提取信息

    會員表

    會員刪除

    DS-8

    5/

    10/

    F14

    會員ID

    選擇會員刪除信息

    管理員

    會員刪除

    DS-7

    5/

    10/

    F15

    會員個人信息

    將會員信息保存到會員表

    會員修改

    會員表

    DS-8

    5/

    10/

    F16

    會員個人信息

    會員修改個人信息

    會員

    會員修改

    DS-7

    5/

    10/

    F17

    余額信息

    用于會員查看余額

    會員表

    會員

    DS-12

    30/

    30/

    F18

    余額信息

    用于會員充值

    會員表

    賬號充值

    DS-13, DS-14

    30/

    50/

    F19

    充值金額

    用于會員充值

    會員

    賬號充值

    DS-10

    30/

    50/

    F20

    充值信息

    將充值信息保存

    賬號充值

    充值表

    DS-3

    300/

    500/

    F21

    檢測信號

    用于電腦的開機管理

    管理員

    開機管理

    DS-2

    300/

    500/

    F22

    限時信息

    限制電腦的使用時間

    管理員

    限時機制

    DS-2

    300/

    500/

    F23

    機號信息

    用于會員換機

    管理員

    換機機制

    DS-9

    3/

    6/

    F24

    短信息

    管理員接受消息

    消息機制

    管理員

    DS-13

    3/

    6/

    F25

    連接信息

    電腦的網絡連接狀態

    開機管理

    上機情況表

    DS-14

    3/

    6/

    F26

    機號信息

    將機號傳到消息機制

    電腦表

    消息機制

    DS-13

    300/

    500/

    F27

    機號信息

    限時信息傳到電腦表

    限時機制

    電腦表

    DS-14

    20/

    10/

    F28

    延時信息

    延長時間使用電腦

    延時重啟設置

    上機情況表

    DS-18

    30/

    60/

    F29

    重啟信息

    用于重新啟動電腦

    延時重啟設置

    上機情況表

    DS-5

    30/

    60/

    F30

    費率信息

    根據余額限制時間

    費率表

    限時機制

    DS-18

    25/

    50/

    F31

    機號信息

    設置延時重啟的電腦

    電腦表

    延時重啟設置

    DS-5

    25/

    50/

    F32

    換機信息

    換機信息存入上機情況表

    換機機制

    上機情況表

    DS-18

    20/

    40/

    F33

    短消息

    保存短消息

    消息機制

    短消息表

    DS-6

    20/

    40/

    F34

    會員請求

    會員對系統管理員的請求

    會員

    消息機制

    DS-13, DS-14

    300/

    30/

    F35

    短消息

    查看存儲的短消息

    段消息表

    消息機制

    DS-10

    300/

    50/

    F36

    會員消息

    會員詳細消息

    會員表

    賬號查詢

    DS-3

    300/

    50/

    F37

    賬號信息

    管理員查看會員消息

    賬號查詢

    管理員

    DS-2

    3/

    500/

    F38

    賬單列表信息

    賬單發送給管理員

    賬單查詢

    管理員

    DS-2

    3/

    500/

    F39

    上機情況

    管理員查看上機情況

    上機統計

    管理員

    DS-9

    3/

    500/

    F40

    充值賬單信息

    查看充值明細

    充值明細

    管理員

    DS-13

    300/

    6/

    F41

    充值信息

    充值表中查看明細

    充值表

    充值明細

    DS-14

    20/

    6/

    F42

    個人充值信息

    充值信息放入賬單

    充值表

    賬單查詢

    DS-13

    30/

    30/

    F43

    賬單信息

    賬單表中提取賬單信息

    賬單表

    賬單查詢

    DS-13, DS-14

    30/

    50/

    F44

    賬單信息

    會員查看賬單信息

    賬單查詢

    會員

    DS-10

    300/

    50/

    F45

    會員ID

    查看特定會員賬單

    會員

    賬單查詢

    DS-3

    300/

    500/

    F46

    人數信息

    查看上機人數

    上機情況表

    上機統計

    DS-2

    300/

    500/

    F47

    管理員信息

    查看管理員信息

    管理員表

    管理員統計

    DS-2

    3/

    500/

    F48

    管理員值班信息

    查看管理員值班信息

    管理員統計

    管理員

    DS-9

    3/

    6/

    F49

    收費明細

    查看會員的收費明細

    收費報表

    管理員

    DS-13, DS-14

    300/

    30/

    F50

    管理員信息

    哪個管理員收費

    管理員表

    收費報表

    DS-10

    300/

    50/

    F51

    賬單明細

    具體的上機消費情況

    上機情況表

    收費報表

    DS-3

    300/

    50/

    F52

    會員信息

    用于會員統計

    會員表

    會員統計

    DS-2

    3/

    500/

    F53

    會員信息

    提供會員信息

    會員統計

    收費報表

    DS-2

    3/

    500/

    4.處理邏輯

    表6-4 處理邏輯

    編號

    處理邏輯名稱

    簡述

    輸入數據流

    輸出數據流

    解釋

    處理頻率

    P1.1

    管理員設置

    對管理員的基本信息進行設計

    F6 管理員信息

    ?F7管理員信息

    對管理員的基本信息進行設計

    300/

    P1.2

    客戶端設置

    對電腦的基本信息進行設計

    F2 機號信息

    F1 機號信息 F3機號信息

    對電腦的基本信息進行設計

    300/

    P1.3

    時段設置

    設置收費的時間段

    F4 時段信息

    F8 時段信息 F9 時段信息

    設置收費的時間段

    500/

    P1.4

    費率設置

    設置電腦的收費情況

    F3 機號信息 F5 費率信息 F9 時段信息

    F10 費率信息

    設置電腦的收費情況

    5/

    P2.1

    會員添加

    添加新的會員

    F12 會員ID

    F11 會員ID

    添加新的會員

    3/

    P2.2

    會員刪除

    會員刪除自己信息

    F14 會員ID F13 會員詳情信息

    會員刪除自己信息

    30/

    P2.3

    會員修改

    會員修改信息

    F16 會員個人信息

    F15 會員個人信息

    會員修改信息

    25/

    P2.4

    賬號充值

    用戶在賬號充值

    F18 余額信息 F19 充值余額

    F20 充值信息

    用戶在賬號充值

    20/

    P3.1

    開機管理

    處理電腦的開機

    F21 檢測信號

    F25 連接信息

    處理電腦的開機

    300/

    P3.2

    限時機制

    對會員的使用限時

    F22 限時信息 F30 費率信息

    F27 機號信息

    對會員的使用限時

    300/

    P3.3

    延時重啟設置

    在規定的時間重啟電腦

    F31 機號信息

    F28 延時信息 F29 重啟信息

    在規定的時間重啟電腦

    500/

    P3.4

    換機機制

    處理換機信息

    F23 機號信息

    F32 換機信息

    處理換機信息

    5/

    P3.5

    消息機制

    處理會員的請求

    F26 機號信息 F3 短消息 F34 會員請求

    F24 短消息 F33 短消息

    處理會員的請求

    3/

    P4.1

    賬號查詢

    對會員的賬號查詢

    F36 會員信息

    F37 賬號信息

    對會員的賬號查詢

    30/

    P4.2

    賬單查詢

    對會員的賬單查詢

    F43 賬單信息 F42 個人充值信息 F45 會員ID

    F38 賬單列表信息 F44 賬單信息

    對會員的賬單查詢

    25/

    P4.3

    充值明細

    處理會員的充值記錄

    F41 充值信息

    F40 充值賬單信息

    處理會員的充值記錄

    300/

    P4.4

    上機統計

    統計電腦使用情況

    F46 人數信息

    F39 上機情況

    統計電腦使用情況

    300/

    P5.1

    管理員統計

    統計管理員信息

    F47 管理員信息

    F48? 管理員值班信息

    統計管理員信息

    500/

    P5.2

    會員統計

    統計會員信息

    F52 會員信息

    F53 會員信息

    統計會員信息

    5/

    P5.3

    收費報表

    處理所有收費信息并統計

    F50 管理員信息 F53 會員信息 F51 賬單明細

    F49 收費明細

    處理所有收費信息并統計

    3/

    5.數據存儲

    表6-5 數據存儲

    編號

    數據存儲名稱

    簡述

    數據存儲組成

    相關聯的處理

    S1

    管理員表

    用于存放管理員的基本信息

    DS-3

    P1.1,P5.1,P5.3

    S2

    電腦表

    用于存放電腦的基本信息

    DS-8

    P1.2,P3.2,P3.3,P3.5

    S3

    費率表

    對不同電腦不同時間段的收費標準

    DS-7

    P1.4,P3.2

    S4

    會員表

    用于存放會員的基本信息

    DS-10

    P2.1,P2.2,P2.3,P2.4,P4.1

    S5

    充值表

    會員的充值記錄

    DS-12

    P2.4,P4.2,P4.3

    S6

    上機情況表

    會員的上機情況

    DS-2

    P3.1,P3.3,P3.4,P4.4,5.3

    S7

    短消息表

    會員向管理員提出的請求

    DS-9

    P3.5

    S8

    時段表

    不同時間的不同收費標準

    DS-14

    P1.3

    S9

    賬單表

    會員下機后的消費單

    DS-15

    P4.2

    E-R圖

    ?

    ?

    ?

    ?

    ?

    ?關系模式

    會員(會員賬號,會員身份證號,會員年齡,會員密碼,會員余額,會員電話號,會員QQ,會員微信,會員職業,會員性別,會員地址,會員等級)

    電腦(電腦編號,電腦顯卡,電腦CPU,電腦顯示器,電腦鍵鼠,電腦收費等級)

    管理員(管理員賬號,管理員身份證號,管理員年齡,管理員密碼,管理員電話號,管理員QQ,管理員微信,管理員職業,管理員性別,管理員地址,管理員權限)

    時段表(時段編號,收費時間段,收費金額)

    費率表(費率編號,電腦編號,會員賬號,管理員賬號,電腦收費等級)

    上機情況表(上機情況編號,電腦編號,會員賬號,管理員賬號,用戶上機時間,會員下機時間,會員上機時長,電腦收費等級,收費時間段,電腦狀態,延長時間,換機機號,重啟,網絡狀態,延時時刻)

    使用記錄表(使用記錄編號,電腦編號,會員賬號,管理員賬號,用戶上機時間,會員下機時間,會員上機時長,電腦收費等級,電腦收費時間段,電腦狀態)

    管理員工作表(工作編號,管理員賬號,管理員姓名,工作表編號,管理員電話,上班時間,下班時間,工作時長)

    維修記錄表(維修編號,電腦編號,管理員賬號,維修費用,維修內容)

    賬單表(賬單編號,會員上機時間,會員下機時間,會員上機時長,會員消費,會員其他消費,用戶賬號,管理員賬號,電腦編號,會員姓名,管理員姓名)

    充值表(充值編號,會員賬戶,管理員賬戶,充值金額,充值時間,會員姓名,管理員姓名)

    消息表(消息編號,會員賬戶,管理員賬戶,用戶姓名,管理員姓名,會員消息,管理員消息,會員等級)

    數據庫實施

    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 = '高級'), 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. 時段表

    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. 費率表

    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. 上機情況表

    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 = '普通') );

    存儲過程

    1. 結算賬單

    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 --獲取會員余額信息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;--設置賬單編號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;--修改會員的余額信息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. 會員上機

    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 --獲取電腦狀態select computer.pc_stateinto PC_state_nfrom computerwhere computer.pc_id = PC_ID_n;--修改電腦使用狀態update computer set computer.pc_state_1 = 1where computer.pc_id = PC_ID_n;commit;--設置上機編號Up_computer_ID_n := to_char(UserUP_time_n + useraccount_n);--獲取上機信息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;--設置上機編號Bill_ID_n := to_char(useraccount+UserUP_time_n);--添加上機信息 dbms_output.put_line('這是您的上機情況'); 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. 會員下機

    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 --修改電腦使用狀態update computer set computer.pc_state_1 = 0where computer.pc_id = PC_ID_n;commit;--獲取用戶等級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; --獲取上機時間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;--獲取收費等級 select PC_charge_gradeinto PC_charge_grade_nfrom computerwhere computer.PC_ID = PC_ID_n;--獲取收費時間段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;--計算消費金額User_consume_n := (Charge_amount_n*PC_charge_grade_n*discount*UserDuration_n);--修改上機信息 dbms_output.put_line('這是您的下機情況'); 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;--設置工作編號Administrator_work_ID_n := to_char(AdministratorUp_time_n + AdministratorAccount_n);--添加上機信息 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. 會員充值

    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;--獲取會員信息select UserNameinto User_name_nfrom user0where user0.useraccount = UserAccount_n;--設置充值編號Recharge_ID_n := to_char(UserAccount_n+ 'cz' + AdministratorAccount_n);--添加上機信息 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;--修改會員的余額信息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 --設置維修編號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. 更新會員

    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;

    觸發器

    會員等級變換

    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 --獲取會員等級 select user0.usergrade into Grage_n from user0 where user0.useraccount=:new.useraccount; --獲取會員消費金額 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; --計算等級 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; --更新會員等級 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('當前空閑電腦僅有 '||to_char(shu) || ' 臺!!!'); end if; end TRI_computer;

    總結

    以上是生活随笔為你收集整理的网吧管理系统数据库设计的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。