日期:2014-05-17  浏览次数:20479 次

每个人从SQLServer读数据并记住自己读过的
每个人从SQLServer读数据并记住自己读过的

设A,B,C三个电脑,都不定时地向SQL Server中的同一个表中插入聊天信息

A,B,C电脑每5秒从这同一个表中读回聊天信息(包括别人发的和自己发的)

现在问题是:
如何让A,B,C都做到只读回上次没读的,也就是只读自从上回读回之后传上去的新信息

------解决方案--------------------
建议加一个是否已读的标识字段Is_Read来记录
------解决方案--------------------
加一字段:IsRead(bit)
从表中取所有自未读的记录,同时把这些记录标记为已读。
------解决方案--------------------
#1.表加一个时间戳字段(timestamp),每行记录,都会有一个唯一的时间戳
#2.加一个表,记录每个用户读取的最后时间戳。
#3.用户每读一次,从#2表中取出最大的时间戳,从#1表中取大于最大时间戳的所有记录,再把取出记录的最大时间戳记录到#2表中。
------解决方案--------------------
设置一个字段为上次读取时间,每次读的时候和上次读取时间进行比对,然后决定做后续的业务