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

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

1. ServerInfoDB

      ServerInfoDB主要存儲遊戲列表信息。主要有如下幾個表:數據庫

      1. GameTypeInfo,其主要字段爲:網站

          TypeID:類型標識 ID 加密

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

          Enable:控制遊戲大廳是否顯示該類型,默認爲 1,即爲默認顯示索引

      2. GameKindInfo,其主要字段爲:遊戲

          KindID: 遊戲的惟一標識進程

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

          KindName: 遊戲名稱, 好比德州撲克,鬥地主等。io

          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地址

相關文章
相關標籤/搜索