日期:2014-05-19  浏览次数:20446 次

我做留言本,在添加新记录的时候怎样自动排挤(删除)旧记录?
我做留言本,在添加新记录的时候怎样自动排挤(删除)旧记录?
也就是我的每个主题下面最多只允许有100条回复记录,如果到达到或超过100条的话,在添加新记录的时候,就会自动排挤(删除)旧最旧的那一条记录,使这个主题在数据库里始终只有100条记录,谢谢大家(不好意思没有分了只有20分)

------解决方案--------------------
这是一个队列问题。队列的最大值是100,你在插入数据的时候,先判断是否队列已满,如果满,则先前面的元素出队,再将新记录入队。就可以了。
------解决方案--------------------
这个设计思想有点问题,干嘛要删除别人的留言呢?
------解决方案--------------------
只显示最新的100条记录~~~
------解决方案--------------------
很简单啊,在往数据库 添加记录的时候,判断此用户的信息量是否超过100,如果超过就删除最后一条,在往里插入
------解决方案--------------------
select count(1) from 表 where 消息ID = 值;
可以得到统计的条数。


关于队列更新的问题:

可以这样做, ID不用管了,在插入的时候先判断有没超过100条,如果已经有 100条了就直接
select top 1 记录ID from 表;

获取到 记录ID 之后用一条 update语句 将这条记录中的数据全都更新成新提交的内容,在显示消息列表时按照 记录的时间逆序排列就行了,感觉这样效率会高一些,不用去删除和再次插入。
------解决方案--------------------
删除不在前一百的记录内的记录:

delete * from tab where id not in (select id from tab top 100 order by ins_date desc)