你好,我想请教一下关于产品自动上下线的问题(直接直接使用数据库更新上下线状态)?

你好,我想请教一下关于产品自动上下线的问题(直接直接使用数据库更新上下线状态)?,第1张

你好,阁下所提的问,一开始我想到了两种方法

一是老方法,用程序来实现,每访问一次就用程序按条件更新一次数据,这样就可以达到“看起来是”的效果,不过它有一点不好就是,当没有人访问的时候,直接从数据库看,肯定没有更新;

二是用触发器。因为我晓得有触发器,也大致听说过,但我自己没用过,刚才看到你的提问,于是我去学习实践了一下,才发现,触发器是的触发条件是对表进行有效数据 *** 作(仅插入、更新、删除)时才会触发,而不能让它在服务器时间达到某一时间就触发的。研究了很久,最后只能废弃这个办法,因为它并不能实现需要的效果。

不过,老方法也可取的,因为别人要想看到效果,肯定会访问数据库,访问前更新一次就行了,一样能达到这个效果。

然后,我又发现,其实阁下大可不必使用“上下线状态”这个字段,有“开始日期”和“结束日期”就行了,每次查询的时候多增加一个条件:

WHERE `startdate` > $nowtime AND `enddate` < $nowtime

就行了,无论是上线总数还是直接查询,有此条件,都能保证它是上线的,这样就可以了,不必额外增加一个字段再来判断,不是么?

可以利用session.

正常情况下,在客户端用ajax与服务器交互,确认用户在线状态.

在页面把session设置稍微短些.(默认20分钟太长了),比如5分钟.

在客户端页面用ajax每隔一分钟就确认一下在线状态.

如果超过5分钟没有确认(相差的几分钟可以防止网络不稳定),session就abort掉.

同时设置用户不在线

这样记录误差也就在5分钟.

当然如果你确定你的服务器性能好,可以更短些

如果我用数字去指定呢,比如我用1和0去指定男女性别,这时候用的布尔类型,像以上的图片的存,取,汇入,转出,转入能否用类似的方法呢。如果将以上分成3份表比较方便实现还是还是使用以上全部集合在一张图表,使用char区分业务


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9775366.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存