在游戏开发的过程中,客户端会请求某个重复的事件的状态,而这这种状态只有两种情况: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;
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 }