棋牌游戲服務器架構: 詳細設計(三) 數據庫設計


    主要有3類Database: ServerInfoDB,UserInfoDB和GameDB。 ServerInfoDB主要存儲的是游戲列表的信息,UserInfoDB存儲玩家的全局信息,而GameDB就是積分以及積分變化情況。下面分別加以描述。

1. ServerInfoDB

      ServerInfoDB主要存儲游戲列表信息。主要有以下幾個表:

      1. GameTypeInfo,其主要字段為:

          TypeID:類型標識 ID 

          TypeName:類型名字,例如棋牌類,休閑類

          Enable:控制游戲大廳是否顯示該類型,默認為 1,即為默認顯示

      2. GameKindInfo,其主要字段為:

          KindID: 游戲的唯一標識

          TypeID: 外鍵(GameTypeInfo的主鍵),該游戲所屬類型

          KindName: 游戲名稱, 比如德州撲克,斗地主等。

          ProcessName: 客戶端進程名稱

          MaxVersion: 客戶端進程的最低版本,若是登錄時發現客戶端版本低於這個值,要求其更新。

          Enable: 控制游戲大廳是否顯示該游戲,默認為1。

      3. GameStationInfo 站點信息表:

          StationID:  站點標識

          StationName: 站點名稱

          Enable: 這個站點是玩家可以選擇的,這個標識控制是否顯示給玩家,默認為1

2 UserInfoDB

      這個數據庫主要存儲玩家的全局信息,有兩個表: UserAccounts和ClubList:

      1. UserAccounts的主要字段:

          UserID:玩家的唯一標識,注冊的時候自動生成,不能修改

          Accounts:帳戶名字,具有唯一性,不能重復,能修改

          LogonPass:玩家帳戶的密碼,采用通用加密算法 MD5 加密記錄

          Gender:性別

          LogonNullity:帳戶禁止標志,影響玩家登錄廣場和登錄游戲房間

          ServiceNullity:服務禁止標志,保留供網站系統使用或者將來系統擴展使用

          UserRight:玩家權限標志,每一位代表一種權限, 比如旁觀權限,大廳公聊權限,私聊權限等。

          ManageRight:管理權限標志,第一位代表一種管理權限,比如踢出玩家,發布消息等。

          FaceID:玩家頭像索引號碼

          ClubID:外鍵(ClubList的主鍵),玩家社團 ID 號碼

          MemberOrder:會員等級標識

          Experience:玩家經驗數值,表示玩家游戲的總局數,可以通過修改每個游戲的經驗數值增加方案得到策略的改變

          AllLogonTimes:玩家成功登陸的總次數

          RegisterDate:玩家的注冊日期

          LastLogonDate:玩家最后登陸的日期

          RegisterIP:玩家帳戶的注冊所在的 IP 地址

          LastLogonIP:玩家最后使用此帳戶登陸的 IP 地址

          Question:密碼找回提示問題

          Answer:密碼找回回答問題

          QQ:玩家注冊QQ號碼

          ConnectPerson:聯系人姓名

          PhoneNO:電話號碼

          Address:家庭住址

          Email:電子郵箱

      2. ClubList是用來存儲社團列表的,主要字段包括:

          ClubID:社團的唯一標識號碼,注冊的時候自動生成,不能修改

          ClubName:社團名字

          ClubQQ:與社團對應的QQ群號碼

          ClubAdmin:社團管理員(外鍵)

          ClubNotice:社團公告,預留字段

3 GameDB

      這個DB主要存儲玩家的游戲相關信息,例如游戲積分,勝局,和局,逃局,登陸時間等信息。

      1. GameScore

          UserID:玩家標識號碼

          Score:玩家的積分數值

          WinCount:游戲勝利局數

          LostCount:游戲輸局局數

          DrawCount: 游戲和局局數

          FleeCount: 游戲逃跑局數

          UserRight:玩家在此游戲中的普通權限數值,在登陸房間的時候與玩家房間權限進行或操作

          ManageRight:玩家在此游戲中的管理權限數值,在登陸房間的時候與玩家房間權限進行或操作

          PlayTimeCount:玩家在此類游戲中的游戲時間

          AllLogonTimes:玩家進入此類游戲的總次數

          RegisterDate:玩家首次進入此類游戲的時間

          LastLogonDate:玩家最后一次進入此類游戲的時間

          RegisterIP:玩家首次進入此類游戲的 IP 地址

          LastLogonIP:玩家最后一次進入此類游戲的IP 地址

       2. GameLogonLog:

          ID:Log的索引ID,自增長。

          UserID:外鍵,玩家 ID 號碼

          Score:玩家進入房間時刻的積分數值

          WinCount:玩家進入房間時刻的游戲勝利局數

          LostCount:玩家進入房間時刻的游戲輸局局數

          DrawCount:玩家進入房間時刻的游戲和局局數

          FleeCount:玩家進入房間時刻的游戲逃跑局數

          KindID:玩家進入的房間的類型標識號碼 

          ServerID:玩家進入房間的房間標識號碼

          ClientIP:玩家進入房間的連接IP地址

          LogonTime:玩家進入房間的時間

       3. GameScorelog:

          ID:LogID,自增長

          UserID:外鍵,玩家 ID 號碼

          LeftTime:玩家離開房間的時間

          Score:玩家在游戲房間游戲所產生的積分改變的數值

          WinCount:玩家在游戲房間游戲所產生的勝利局數改變的數值

          LostCount:玩家在游戲房間游戲所產生的輸局局數改變的數值

          DrawCount:玩家在游戲房間游戲所產生的和局局數改變的數值

          FleeCount:玩家在游戲房間游戲所產生的逃跑局數改變的數值

          Experience:玩家在游戲房間游戲所產生的經驗數值改變的數值

          PlayTimeCount:玩家在游戲房間游戲所產生的游戲時間的數值

          OnLineTimeCount:玩家在游戲房間游戲所產生的在線時間的數值

          KindID:玩家進入的房間的類型標識號碼

          ServerID:玩家進入房間的房間標識號碼

          ClientIP:玩家進入房間的連接IP地址


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM