`

单一世界十万在线webgame的设计思路(二)--数据库表结构划分

    博客分类:
  • Game
阅读更多

数据库表设计:

 

因为要把这么多访问量分担到不同的服务器里,原先的数据库表设计肯定不会合适。初步的想法是根据游戏的逻辑模块,将不同模块的数据库表拆分到各个服务器里,如果按照上面的服务器预估得到的结论是4~6组服务器,实际上这个方案还是可行的。但如果是20组服务器的话,除非是一台服务器一张数据库表,但这的设计会造成数据表太分散,在处理事务的时候,会跨多个数据库

 

策略类webgame一般的主要模块为:建筑物和资源、军事、英雄、物品、帮会、交易、地图。根据这些模块的应用场景,可以将数据库表分为2种类型,一种是属于玩家的数据,另外一种是公共数据。

1. 属于玩家的数据是指玩家个人说拥有的基地、资源、军事单位、物品等数据,它们都是围绕着玩家而产生的。

2.公共数据则是指由多位玩家共同组合而产生的数据,例如:账户信息、帮会、地图等。

这里划分两种数据的目的是在于他们的数据库表的划分。对于公共数据,则采用单一服务器,单一数据库表处理的方式来处理。例如帮会模块和地图模块就准备分别用3台服务器来存储各自对应的数据库表。而对于玩家的数据,则根据用户ID采用一定的划分方式,将玩家数据打散到各个服务器里(http://blog.zhaojie.me/2010/03/sharding-by-id-characteristic.html)。

(数据表的结构划分)

 

用户表和其单表的设计思路:

 

这里所说的单表是指在逻辑上部队数据库表做拆分,程序在访问时只访问一个数据库。当然这只是逻辑上的单一,根据实际上的访问压力,可以将数据库文件作水平切割分布在不同的文件分区和服务器里。这部分的数据库表设计继续沿用之前的设计方案就可以了。

对于用户信息,帮会信息等数据,实际上插入和更新的频率不会太高,更多的是在查询上,因此这部分的设计重点应该是在缓存上。从以前的资料里得知Memcache服务器每秒可以响应4w次的读请求,用一台Memcache就能处理好用户和帮会信息的缓存处理。

作者:Yahle
原载:http://www.cnblogs.com/yahle
版权所有。转载时必须以链接形式注明作者和原始出处。
分享到:
评论

相关推荐

    webgame开发简明教程(经典)

    - **数据库设计**:合理的数据库设计对于Webgame来说至关重要,需要考虑到性能优化、数据安全等因素。 - **前端技术**: - **AJAX**:异步JavaScript和XML的缩写,可以实现局部刷新页面,提升用户体验。 - **...

    webgame开发简明教程

    - **地图结构设计**:地图是Webgame中非常核心的组成部分。一般情况下,会为每个地图设定一个唯一的ID(Map_ID),并通过坐标系统(X, Y)来表示地图上的各个位置。 - **城市模型**:除了地图之外,城市也是游戏中不...

    WebGame:SSM 25-1

    项目文件"WebGame-master"很可能包含了以下结构: - `server.js`: 主服务器文件,包含Node.js应用的启动代码,可能还包括数据库连接和路由配置。 - `models/`: 存放与MongoDB交互的模型文件,定义了数据的结构和操作...

    侠域网页游戏WebGame源代码

    通常,这样的命名可能是游戏资源、模块或者数据库表的简写,比如可能包含游戏日志记录、用户数据、游戏地图、游戏逻辑代码等。 综上,"侠域网页游戏WebGame源代码"涵盖了PHP编程、Web开发基础、数据库管理和游戏...

    webgame 在线棒球赛

    在"Webgame 在线棒球赛"中,ASP可能被用来处理用户输入、管理游戏逻辑和数据库操作等任务,确保游戏的顺畅运行。 "网页游戏"(Webgame)是指在网页浏览器中运行的游戏,通常依赖于JavaScript、HTML5、CSS3等Web技术...

    webgame-with-the-bois

    1. **Python基础**:Python的基础语法是理解任何Python项目的基础,包括变量、数据类型、控制结构(如if-else,for,while循环)、函数、类和对象等。了解这些基础知识能帮助我们阅读和理解代码逻辑。 2. **Web框架...

    webgame asp javascript在线游戏源代码

    【标题】"Webgame ASP JavaScript在线游戏源代码"揭示了这是一个使用ASP(Active Server Pages)技术和JavaScript编程语言构建的在线游戏平台的源码资源。ASP是微软开发的一种服务器端脚本环境,常用于动态网页的...

    webgame(最终幻想)源码

    此外,描述还暗示源码可供学习,这为初学者或有经验的开发者提供了查看代码结构、逻辑和设计模式的平台,有助于提升他们的编程技能。 【标签】中包含了"asp.netwebgame"和"C#",这表明虽然游戏本身是用PHP编写的,...

    最终幻想webgame(access)

    《最终幻想webgame(access)》是一款基于网页的在线游戏,其源码可供学习和研究。这款游戏使用了big5编码,这是一种繁体中文字符编码,主要用于处理台湾、香港等地的中文文本。通过分析这款网页游戏的源码,我们...

    一个陈旧的WebGame服务端的优化

    通过合理设计数据库表结构,使用索引,优化SQL查询,以及采用缓存策略(如Redis或Memcached),可以显著提升数据库性能。 3. **负载均衡**:随着玩家数量的增加,单一服务器可能会不堪重负。通过引入负载均衡技术,...

    一套完整的php webgame源码

    2. **数据库设计**:通常包括SQL脚本,用于创建玩家表、游戏世界表、物品表等,以及相关的数据模型类,负责与数据库进行交互。 3. **游戏逻辑**:包括用户注册、登录系统、游戏进程控制、角色移动、战斗逻辑等,...

    webgame客户端通信VO设计构想

    通过对父类Message、通信连接类Connection、VO身份识别配置类VOIdentifyMap以及Socket命令类SocketCommands的详细介绍,旨在为Webgame开发者提供一种高效、可靠的通信VO设计思路。此外,还提出了具体的使用流程和...

    网页游戏开发入门教程(游戏模式+系统)

    以一个简单的webgame为例,我们可以进一步探讨其设计思路: #### 1. **数据库设计** - **玩家表**:存储玩家基本信息。 - **地图表**:存储游戏世界中的地图信息。 - **城市表**:存储游戏中城市的详细信息。 - **...

    webgame-【源代码包】

    这个【webgame-【源代码包】】显然包含了多个关于Webgame开发的源代码和资源,对于想要学习和理解AJAX(异步JavaScript和XML)在Webgame中的应用非常有价值。 首先,AJAX是一种在不刷新整个网页的情况下,能够更新...

    WebGame大型游戏架构书

    **标题与描述**:“WebGame大型游戏架构书”这一标题简洁明了地概括了文档的主题,即介绍一个基于网络的大规模游戏架构的设计思路和技术要点。该文档描述部分重复了标题内容,没有提供额外的信息,但从整体来看,...

    webgame 部落争霸 php

    《Webgame部落争霸》是一款基于PHP开发的在线游戏,它展现了Webgame的魅力,结合了策略、竞技等元素,为玩家提供了丰富的游戏体验。本资源包含了游戏的主要源代码,位于压缩包内的"htdocs"目录,这通常代表了Web...

    Travianx-master.zip_Travian-x_travian_travian 源码_webgame

    3. **数据库操作**:Travian的数据库设计是源码的关键部分,它存储了玩家信息、游戏状态等关键数据。源码中的SQL查询和ORM(对象关系映射)层展示了如何高效地读写数据库,以支持大量并发玩家的游戏环境。 4. **...

    网页游戏开发入门教程(webgame design)

    ### 网页游戏开发入门教程(webgame design) #### 一、基础知识点概述 本教程旨在为初学者提供一个简单易懂的网页游戏开发入门指南,并为有经验的开发者提供一些新的启发。通过本教程,您将了解网页游戏开发的...

Global site tag (gtag.js) - Google Analytics