2012-04-07 46 views
0

我使用ajax从我的mysql表中每10秒选取一行随机数。使用ajax从数据库中挑选数据并保存上次挑选的数据

问题是我想防止两次拾取相同的行(一个接一个)。我可以使用会话来保留最后挑选的行ID,但我希望它是服务器端。

我也可以发送更新查询到数据库与最后选择unix时间,但我想防止服务器重载,我关心性能......所以这个想法是不是很好。

正如你可以有更多的经验相关的表现,我想从你的一些想法,关于上述问题。谢谢你们提前。

//我已经放置了codeigniter标签,因为这个东西可能对这个问题很重要。

+0

从页面加载开始,每隔10秒就会挑选一个随机行,并且它会重复ajax请求直到用户关闭该网站。 – Cyclone 2012-04-07 16:42:52

回答

1

我认为在服务器端的用户会话中存储上次选择的记录ID是最好的解决方案。通过这种方式,您可以获取该用户的最后选定ID并将其从查询中排除。

如果您打算创建一个额外的数据库表来保存最后选定的ID,请记住,您的网站可能有多个并发访问者,因此您必须存储每个访问者的最后选定ID,假设该ID不能是唯一的。

如果每个访问者必须同时看到相同的ID,那么上一段中的想法可能是一个可能的解决方案,或者甚至为需要查询的表添加布尔字段并将其设置为true目前的记录和所有其他的记录是错误的。您必须在查询中使用时间戳,以确保您每10秒钟只返回一个与上一个不同的新唯一记录。

相关问题