你好,阁下所提的问,一开始我想到了两种方法
一是老方法,用程序来实现,每访问一次就用程序按条件更新一次数据,这样就可以达到“看起来是”的效果,不过它有一点不好就是,当没有人访问的时候,直接从数据库看,肯定没有更新;
二是用触发器。因为我晓得有触发器,也大致听说过,但我自己没用过,刚才看到你的提问,于是我去学习实践了一下,才发现,触发器是的触发条件是对表进行有效数据 *** 作(仅插入、更新、删除)时才会触发,而不能让它在服务器时间达到某一时间就触发的。研究了很久,最后只能废弃这个办法,因为它并不能实现需要的效果。
不过,老方法也可取的,因为别人要想看到效果,肯定会访问数据库,访问前更新一次就行了,一样能达到这个效果。
然后,我又发现,其实阁下大可不必使用“上下线状态”这个字段,有“开始日期”和“结束日期”就行了,每次查询的时候多增加一个条件:
WHERE `startdate` > $nowtime AND `enddate` < $nowtime就行了,无论是上线总数还是直接查询,有此条件,都能保证它是上线的,这样就可以了,不必额外增加一个字段再来判断,不是么?
可以利用session.正常情况下,在客户端用ajax与服务器交互,确认用户在线状态.
在页面把session设置稍微短些.(默认20分钟太长了),比如5分钟.
在客户端页面用ajax每隔一分钟就确认一下在线状态.
如果超过5分钟没有确认(相差的几分钟可以防止网络不稳定),session就abort掉.
同时设置用户不在线
这样记录误差也就在5分钟.
当然如果你确定你的服务器性能好,可以更短些
如果我用数字去指定呢,比如我用1和0去指定男女性别,这时候用的布尔类型,像以上的图片的存,取,汇入,转出,转入能否用类似的方法呢。如果将以上分成3份表比较方便实现还是还是使用以上全部集合在一张图表,使用char区分业务欢迎分享,转载请注明来源:内存溢出
评论列表(0条)