棋牌遊戲伺服器架構 詳細設計 三 資料庫設計

2021-07-11 07:34:35 字數 3196 閱讀 4227

標籤: 遊戲

資料庫伺服器

儲存database加密

2012-09-16 12:35

5612人閱讀收藏 

舉報

棋牌遊戲架構(4)

目錄(?)

[+]

主要有3類database: serverinfodb,userinfodb和gamedb。 serverinfodb主要儲存的是遊戲列表的資訊,userinfodb儲存玩家的全域性資訊,而gamedb就是積分以及積分變化情況。下面分別加以描述。

serverinfodb主要儲存遊戲列表資訊。主要有以下幾個表:

1. gametypeinfo,其主要欄位為:

typeid:型別標識 id 

typename:型別名字,例如棋牌類,休閒類

enable:控制遊戲大廳是否顯示該型別,預設為 1,即為預設顯示

2. gamekindinfo,其主要欄位為:

kindid: 遊戲的唯一標識

typeid: 外來鍵(gametypeinfo的主鍵),該遊戲所屬型別

kindname: 遊戲名稱, 比如德州撲克,鬥地主等。

processname: 客戶端程序名稱

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

enable: 控制遊戲大廳是否顯示該遊戲,預設為1。

3. gamestationinfo 站點資訊表:

stationid:  站點標識

stationname: 站點名稱

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

這個資料庫主要儲存玩家的全域性資訊,有兩個表: 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:密碼找回回答問題

connectperson:聯絡人姓名

phoneno:**號碼

address:家庭住址

email:電子郵箱

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

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

clubname:社團名字

clubadmin:社團管理員(外來鍵)

clubnotice:社團公告,預留字段

這個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:玩家在遊戲房間遊戲所產生的遊戲時間的數值

kindid:玩家進入的房間的型別標識號碼

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

clientip:玩家進入房間的連線ip位址

頂 5

棋牌遊戲伺服器架構 詳細設計 一 核心設計

核心的幾個元件被設計成service,也就是說這幾個模組都要實現如下介面 圖1 iservice介面 start方法用來啟動服務。stop 方法用來關閉服務。isservice 方法用於查詢當前服務是否正在工作。圖2 iservicemgr介面 iservicemgr提供兩類介面 1 獲取servi...

棋牌遊戲伺服器架構 詳細設計 一 核心設計

核心的幾個元件被設計成service,也就是說這幾個模組都要實現如下介面 圖1 iservice介面 start方法用來啟動服務。stop 方法用來關閉服務。isservice 方法用於查詢當前服務是否正在工作。圖2 iservicemgr介面 iservicemgr提供兩類介面 1 獲取servi...

棋牌遊戲伺服器架構設計

一,棋牌類伺服器的特點 1,棋牌類不分割槽不分服 一般來說,棋牌遊戲都是不分割槽不分服的。所以棋牌類伺服器要滿足隨著使用者量的增加而擴充套件的需要。2,房間模式 即在同一局遊戲中就是在同乙個房間中,同乙個房間中的人可以接收到其他人的訊息。3,每個房間的操作必須是順序性 這個特性類似與一般遊戲的回合制...