KBEngine官方论坛

 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 配置 开服
查看: 615|回复: 9

如何设置实体表databaseID初始自增值

[复制链接]

78

主题

267

帖子

906

积分

高级会员

Rank: 4

积分
906
发表于 2017-1-17 14:03:11 | 显示全部楼层 |阅读模式
如何设置实体表databaseID初始自增值,如题!当前都是从1开始,如果我需要从100000开始自增的话,该如何操作
回复

使用道具 举报

8

主题

3374

帖子

7586

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
7586
QQ
发表于 2017-1-17 14:10:03 | 显示全部楼层
直接设置mysql即可。
你为何要这样?
柯标
3603661@qq.com
回复

使用道具 举报

61

主题

225

帖子

862

积分

高级会员

Rank: 4

积分
862
发表于 2019-1-9 17:16:44 | 显示全部楼层
admin 发表于 2017-1-17 14:10
直接设置mysql即可。
你为何要这样?

有种情况是这样,把databaseID当做uid来使用,客户端会显示uid,如果进来的用户直接从1开始,一个是排版难看,其次是用户能知道服务器的人数,手动修改表带来的问题是每次建立新数据库需要手动调一次,删除数据表也需要调一次,比较容易遗忘和出错,如果能在def文件里配置databaseID的起始值会方便很多,不知道能否支持一下?
回复

使用道具 举报

3

主题

10

帖子

255

积分

中级会员

Rank: 3Rank: 3

积分
255
发表于 2019-1-9 17:44:43 | 显示全部楼层
CC2012520 发表于 2019-1-9 17:16
有种情况是这样,把databaseID当做uid来使用,客户端会显示uid,如果进来的用户直接从1开始,一个是排版 ...

不推荐改databaseID, 也不推荐把它当uid,   你可以加个字段  通过 databaseID 和 serverid  位移 得到 uid

例如:   这一类的计算网上有很多,自己组合
def pack_player_id(_id, _server_index):
    return _server_index << 48 | (pack_id(EOT_PLAYER, _id) & 0x0000FFFFFFFFFFFF)

类似得到  281483566645249  这个 playerid  通过逆运算可以得到  databaseID   和 serverid  

在将来不管是客户端显示,还是跟运营合作, 第三方开发功能,各种接口都使用这样的id...
回复

使用道具 举报

61

主题

225

帖子

862

积分

高级会员

Rank: 4

积分
862
发表于 2019-1-9 17:59:14 | 显示全部楼层
comblock 发表于 2019-1-9 17:44
不推荐改databaseID, 也不推荐把它当uid,   你可以加个字段  通过 databaseID 和 serverid  位移 得到 ui ...

是永远用方法获得这个值呢?还是初始化的时候计算出来存入数据库当字段用呢?如果当字段用好像没有比较好的初始化时机,只能每次从数据库加载entity后,计算一次写入数据库,因为Account创建时好像没有时机来初始化字段,只能在def中填默认值
回复

使用道具 举报

3

主题

10

帖子

255

积分

中级会员

Rank: 3Rank: 3

积分
255
发表于 2019-1-9 18:13:18 | 显示全部楼层
CC2012520 发表于 2019-1-9 17:59
是永远用方法获得这个值呢?还是初始化的时候计算出来存入数据库当字段用呢?如果当字段用好像没有比较好 ...

写数据库里, 最好的时机是在C++代码里创建...  
回复

使用道具 举报

61

主题

225

帖子

862

积分

高级会员

Rank: 4

积分
862
发表于 2019-1-9 18:17:37 | 显示全部楼层
comblock 发表于 2019-1-9 18:13
写数据库里, 最好的时机是在C++代码里创建...

呃呃,好吧,改C++代码一来成本高,二来不利于升级引擎

还是写个默认值0,每次Account  init的时候,判断该值是否为0,为0就计算一次然后赋值

对了,我看每个进程都把所有entity通过entity.id 做了base.entities.items 的索引,这个entity.id是跨进程全局唯一吗?
回复

使用道具 举报

5

主题

5407

帖子

214748万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2147483647

引擎扛把子

发表于 2019-1-10 10:05:15 | 显示全部楼层
QQ:3603661
3603661@qq.com
回复

使用道具 举报

1

主题

7

帖子

167

积分

注册会员

Rank: 2

积分
167
QQ
发表于 2019-3-5 18:14:26 | 显示全部楼层
同问,主要是合服时tbl_Avatar表处理起来比较麻烦,要修改大量的相同id字段;特别是Avatar还有多个子表的情况,还得同步修改大量的parentID字段
QQ:837239638
Email:837239638@qq.com
回复

使用道具 举报

5

主题

5407

帖子

214748万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2147483647

引擎扛把子

发表于 2019-3-6 10:18:29 | 显示全部楼层
多个服可以用同一个数据库, 也可以挂在多个数据库。
即使要修改字段也就是一个程序自动改的事, 就一条规则主表父表没多大事。
QQ:3603661
3603661@qq.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|KBEngine Forum

GMT+8, 2019-7-18 03:19 , Processed in 0.033346 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表