棋牌游戏服务器架构: 详细设计(三) 数据库设计

    主要有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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈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…