游戏服务器修改状态标志位方法

在游戏开发的过程中,客户端会请求某个重复的事件的状态,而这这种状态只有两种情况:0或者1。遇到这种需求时,那么服务器存储时,是建一个N个字段的表格,还是只是存储一个字段?

建N个字段的表格的话,实现和修改很简单,只需要sql查询出来就可以,如果N<=4的话,此方法非常好,但是需求一个很多的状态时?比如月签到记录,模块解锁等需要很多数据段的话,建表就不太方便和美观了。

正因为这种不方便,所以我想过使用字符串存错,表中只需要记录一个字段,就是这个状态集。

比如记录一个月的记录,我可以使用下面这种(PHP实现)

 1 $str="1111111";
 2 set($str, 3);
 3 recover($str, 3);
 4 /**
 5  * 置0位
 6  * @param unknown $str
 7  * @param unknown $num
 8  */
 9 function set($str,$num)
10 {
11     $str |= 1<<$num;
12     echo $str;
13 }
14 
15 function recover($str,$num)
16 {
17     $str &= ~(1<<$num);
18     echo $str;

19 } 

posted on 2013-10-14 11:16  小菜鸟梦游  阅读(285)  评论(0编辑  收藏  举报