第一种思路:
用户权限表里,设一逻辑列:是否在线。
默认为False。
用户每次登录,除了检查用户名和密码,还检查是否在线的状态。
是否在线为True,,返回,拒绝登录;反之,正常登录。
每次登录成功,将是否在线更新为True。
每次退出成功,将是否在线更新为False。
缺点:如果程序意外退出,状态会停留在True的状态,用户再也无法正常登录,需管理员人工干预。
第二种思路:
用户权限表里,设一时间列:在线时间。
做个计划:
用户登录后,程序以较短的时间间隔,不断更新在线时间。
用户每次登录,计算,点击确定按钮时的时间,减去在线时间里的时间。
这个差值大于计划规定的时间间隔,说明此前,该用户不在线,正常登录;反之拒绝登录。
缺点:系统开销较大。