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

? ? 主要有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地址

轉載于:https://www.cnblogs.com/li_shugan/archive/2012/09/16/2687155.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/379282.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/379282.shtml
英文地址,請注明出處:http://en.pswp.cn/news/379282.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

程序開發與性格特征

程序開發與性格特征 引言: 程序員給很多人的印象一般是不善于交際、表情嚴肅、思維緊密、做事認真、沉著冷靜等等。那么這些特征到底和程序開發有沒有關系呢?不同性格的人在團隊開發當中將面臨什么樣的問題以及不同性格的人在團隊開發中又將發揮著什么樣…

匯編語言編寫程序從1加到100要求使用循環結構。

匯編語言編寫程序從1加到100要求使用循環結構。 匯編思路:AX用于存放每次累加的結果—>09998…0 首先,DATA段中定義SUM用來存放結果和,STACK段定義一個200DB類型空間,用來存放數據。CODE段,AX清0,CX賦值…

c語言指針++_C ++此指針| 查找輸出程序| 套裝3

c語言指針Program 1: 程序1&#xff1a; #include <iostream>using namespace std;class Test {int VAL;public:Test(int v){VAL v;}Test* Sum(Test T1, Test T2){VAL T1.VAL T2.VAL;return this;}void print(){cout << VAL << " ";}};int mai…

線性表(代碼、分析、匯編)

目錄&#xff1a;代碼&#xff1a;分析&#xff1a;匯編&#xff1a;代碼&#xff1a; LinkList.h #ifndef _LINKLIST_H_ #define _LINKLIST_H_typedef void LinkList; //定義線性表類型 typedef struct _tag_LinkListNode LinkListNode;//定義線性表節點類型 struct _tag_Li…

WPF 操作 richTextBox

FROM:http://blog.csdn.net/wuzhengqing1/article/details/7010902 取出richTextBox里面的內容 第一種方法&#xff1a; 將richTextBox的內容以字符串的形式取出 string xw System.Windows.Markup.XamlWriter.Save(richTextBox.Document); 第二種方法&#xff1a;將richTe…

微軟企業庫4.1學習筆記(八)創建對象 續集2

3.3通過配置指定和Unity的整合 另外一種方法是在配置源中指定配置的需要&#xff0c;你可以指定下面的一條或者多條&#xff1a; 你可以在Unity配置中指定想要的BlockExtensions  你可以在Unity配置中的type配置節指定如何創建企業庫對象&#xff0c;指定類型映射的關系&…

已知有幾個數據存放在BUF為首址的字節存儲區中,試統計其中正數的個數,并將結果存入ZNUM單元中。

已知有幾個數據存放在BUF為首址的字節存儲區中&#xff0c;試統計其中正數的個數&#xff0c;并將結果存入ZNUM單元中。 P160 例4.17 匯編思路&#xff1a;DATA段&#xff0c;定義BUF存儲區&#xff0c;定義一下DB類型的數據&#xff0c;N為定義數據的總個數&#xff0c;ZNUM…

靜態鏈表(代碼、分析、匯編)

目錄&#xff1a;代碼&#xff1a;分析&#xff1a;匯編&#xff1a;代碼&#xff1a; StaticList.h #ifndef _STATICLIST_H_ #define _STATICLIST_H_typedef void StaticList; //空類型靜態表類型可以接收任何類型的靜態表類型 typedef void StaticListNode;//空類型節點類型…

c語言 typedef_C Typedef-能力傾向問題與解答

c語言 typedefC programming Typedef Aptitude Questions and Answers: In this section you will find C Aptitude Questions and Answers on typedef topics, defining/changing name of any data type, using and accessing the typedef values. C編程Typedef Aptitude問答&…

ios程序 調試log宏的添加

#ifdef DEBUG # define LOG(...) NSLog(__VA_ARGS__) # define LOG_CURRENT_METHOD NSLog("%-%", NSStringFromClass([self class]), NSStringFromSelector(_cmd)) #else # define LOG(...) ; # define LOG_CURRENT_METHOD ; #endif 使用 LOG_CURRENT_METHOD; NS…

Python的線程池實現

代碼 1 #coding:utf-82 3 #Python的線程池實現4 5 importQueue6 importthreading7 importsys8 importtime9 importurllib10 11 #替我們工作的線程池中的線程12 classMyThread(threading.Thread):13 def__init__(self, workQueue, resultQueue,timeout30, **kwargs):14 threadin…

編程統計BUF字單元數據中所含1的個數,并將結果存入COUNT單元中。

編程統計BUF字單元數據中所含1的個數&#xff0c;并將結果存入COUNT單元中。 代碼如下&#xff1a; DATA SEGMENT BUF DW 2345H ;隨機存儲一下數據 COUNT DB ? ;用于統計BUF字單元數據中所含1的個數 DATA ENDS STACK SEGMENT STACKDB 100 DUP(?);在堆棧段開辟一段大小為1…

循環鏈表(代碼、分析、匯編)

目錄&#xff1a;代碼&#xff1a;分析&#xff1a;匯編&#xff1a;代碼&#xff1a; CircleList.h #ifndef _CIRCLELIST_H_ #define _CIRCLELIST_H_typedef void CircleList;typedef struct _tag_CircleListNode CircleListNode;struct _tag_CircleListNode{CircleListNode…

Java Throwable setStackTrace()方法與示例

Throwable類setStackTrace()方法 (Throwable Class setStackTrace() method) setStackTrace() Method is available in java.lang package. setStackTrace()方法在java.lang包中可用。 setStackTrace() Method is used to sets stack trace elements that will be retrieved by…

IOS中設置全局變量

轉&#xff1a;http://blog.csdn.net/totogogo/article/details/7355203 有幾種方法 some developers recommend use singleton patter (ref link http://blog.csdn.net/kmyhy/article/details/7026511) 方法1&#xff1a;使用靜態變量 (不推薦&#xff09; 方法2&#xff1a; …

設計模式之Observer

觀察者模式可以參考郵件訂閱的例子 郵件訂閱設計到2個主要角色&#xff0c;一個是訂閱者(觀察者)&#xff0c;一個是發布者 發布者可以擁有一個觀察者的集合&#xff0c;可以添加&#xff0c;刪除觀察者&#xff0c;當發布者發布一個新的消息時&#xff0c;要郵件通知觀察者集合…

編寫一個程序,計算|X-Y|的值,并將結果存入RESULT單元中,其中X和Y都為帶符號字數據。

編寫一個程序&#xff0c;計算|X-Y|的值&#xff0c;并將結果存入RESULT單元中&#xff0c;其中X和Y都為帶符號字數據。 P154 例4.11 匯編思路:DATA段定義X、Y、RESULE分別用于存放隨機數、存放隨機數、存放最后計算結果。STACK段定義100DB大小的堆棧段運算存儲空間。將AX獲取…

java timezone_Java TimeZone inDaylightTime()方法及示例

java timezoneTimeZone類inDaylightTime()方法 (TimeZone Class inDaylightTime() method) inDaylightTime() method is available in java.util package. inDaylightTime()方法在java.util包中可用。 inDaylightTime() method is used to check whether the given date (d) is…

這幾天好像博客登不上去 什么情況

這幾天好像博客登不上去 什么情況 我多年的心情記錄啊 還以為關掉了 。。。。。。。 今天很生氣&#xff0c;麻痹 轉載于:https://www.cnblogs.com/cloud/archive/2010/04/25/1720744.html

雙向鏈表(代碼、分析、匯編)

目錄&#xff1a;代碼&#xff1a;分析&#xff1a;匯編&#xff1a;代碼&#xff1a; DLinkList.h #ifndef _DLINKLIST_H_ #define _DLINKLIST_H_typedef void DLinkList; typedef struct _tag_DLinkListNode DLinkListNode; struct _tag_DLinkListNode {DLinkListNode* nex…