求助,一般游戏角色的数据库怎样的?只要思路就OK了

feng2ge2 2014-08-12 02:58:00
以前我接触过的要用数据库的项目,都比较简单,类似报表, ID,姓名,等等,在抽象上就是一个很标准的矩形。

可是游戏数据库字段是怎样的啊? 特别是装备, 比如有游戏ID,角色姓名, 武器,衣服。 但是武器我有拿在手上的武器,还有背包里的武器, 甚至仓库里面还有武器。 这样不可能设置无限多的字段吧? 那么游戏数据库通常都不是一张表来容纳一个角色的数据?

那通常一个游戏角色的数据库是怎样设计的呢? 是不是用多张表? 比如仓库物品一张表? 背包物品一张表? 穿戴物品又是一张表? 那得多少张表才可以啊,另外多表之间好关联吗?

请有这方面经验的朋友帮帮忙呀,这方面实在不懂啊,只需要给我说个大概指个方向就行了。
...全文
795 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
sniffer12345 2014-08-12
  • 打赏
  • 举报
回复
引用 楼主 feng2ge2 的回复:
以前我接触过的要用数据库的项目,都比较简单,类似报表, ID,姓名,等等,在抽象上就是一个很标准的矩形。 可是游戏数据库字段是怎样的啊? 特别是装备, 比如有游戏ID,角色姓名, 武器,衣服。 但是武器我有拿在手上的武器,还有背包里的武器, 甚至仓库里面还有武器。 这样不可能设置无限多的字段吧? 那么游戏数据库通常都不是一张表来容纳一个角色的数据? 那通常一个游戏角色的数据库是怎样设计的呢? 是不是用多张表? 比如仓库物品一张表? 背包物品一张表? 穿戴物品又是一张表? 那得多少张表才可以啊,另外多表之间好关联吗? 请有这方面经验的朋友帮帮忙呀,这方面实在不懂啊,只需要给我说个大概指个方向就行了。
得了,行业软件的数据库更复杂,遇到BOM你怎么办?物料由无数子物料构成,组成的结构深度还是未知的。游戏的数据结构深度至少是可以预测的。 另外,具体设计无所谓。比如背包,你可以外键关联到另一张表,也可以就跟策划约定好,最多200个格子,至于以后扩充那是以后的事。 最后游戏不直接读写数据库的,数据库只是用来持久存储而已。以前我们甚至直接写文件,启动的时候mmap进来的。
zilaishuichina 2014-08-12
  • 打赏
  • 举报
回复
首先blob字段, 它是将数据以2进制的形式存进去的一种列类型。 如何使用blob字段lz请自行google一下,这里就不赘述了。 游戏数据库,怎么设计看实际需求,没有统一的标准。 通常做法 起初就是角色一张表,一行数据就是一个玩家的数据(字段包括:等级,经验,身上的装备(一个blob),背包(一个blob),仓库(一个blob),任务数据(一个blob),好友(一个blob),等等) 然后根据实际需要,比如服务器的逻辑划分,数据库自身的压力,不同的数据的更新的频率,甚至包括数据的重要程度 可能会再按列拆分这张表, 比如拆成,玩家基础数据一张表,玩家仓库一张表,玩家好友一张表,等等
  • 打赏
  • 举报
回复
引用 楼主 feng2ge2 的回复:
以前我接触过的要用数据库的项目,都比较简单,类似报表, ID,姓名,等等,在抽象上就是一个很标准的矩形。 可是游戏数据库字段是怎样的啊? 特别是装备, 比如有游戏ID,角色姓名, 武器,衣服。 但是武器我有拿在手上的武器,还有背包里的武器, 甚至仓库里面还有武器。 这样不可能设置无限多的字段吧? 那么游戏数据库通常都不是一张表来容纳一个角色的数据? 那通常一个游戏角色的数据库是怎样设计的呢? 是不是用多张表? 比如仓库物品一张表? 背包物品一张表? 穿戴物品又是一张表? 那得多少张表才可以啊,另外多表之间好关联吗? 请有这方面经验的朋友帮帮忙呀,这方面实在不懂啊,只需要给我说个大概指个方向就行了。
多表之间关联不难啊。 其实一个角色的内容并不多。身上的装备数量就那么多,仓库的空间就那么多(可扩充也是有限的)。属性值就那么几项。不用每个角色建立一个表格。每个角色一条记录。
feng2ge2 2014-08-12
  • 打赏
  • 举报
回复
能稍微
引用 1 楼 wallwind 的回复:
游戏不怎么需要数据库,就是玩家数据放到一个blob数据字段里就行了
blob字段是哪种?
勤奋的小游侠 2014-08-12
  • 打赏
  • 举报
回复 2
一张玩家表, 一张物品基础表,id[对应下面的物品类型],物品名,物品功法防值,物品是否道具等 一张物品表,物品表有如下字段:id,所属玩家,所在位置[身上,北背包,仓库等],可装备位置[手脚身等],物品类型,等级。 加载时从物品表加载物品,属于同一个玩家的就加载,把物品按所在位置放到身上或仓库。每个物品加载时,同时去基础表加载它的基础值。
赵4老师 2014-08-12
  • 打赏
  • 举报
回复
借用指针的思路。
ctreewang 2014-08-12
  • 打赏
  • 举报
回复
游戏不怎么需要数据库,就是玩家数据放到一个blob数据字段里就行了

65,180

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧