在文章数据表中增加一个字段存放浏览用户id
或者
增加一个表存放用户id  浏览文章id

解决方案 »

  1.   

    我的论坛是用cookie记的……减轻数据库负担……
      

  2.   

    cookie记不住  客户端清理一下后就没了
      

  3.   

    不同文章的页面写个不同变量的cookie啊,如果已经存在此cookie变量就表明已读了
    比如说变量名称类似这样 "xx"+你文章的id
      

  4.   

    -- 
    cookie记不住  客户端清理一下后就没了那你清理一下数据库,数据库可以不没了吗?
      

  5.   

    完全精确的统计,可以通过在文章表中记录用户id或在用户表中记录文章id
    但记录量太大,实用价值有待考察一般可记录用户最后一次离开的时间
      

  6.   

    -- 
    cookie记不住  客户端清理一下后就没了那你清理一下数据库,数据库可以不没了吗?用户换台机器看文章时
    看过的不就显示没看过
    用cookie形同虚设
      

  7.   

    <?
    session_start();
    //...
    //单独建立一个用户表就俩字段:用户ID,已读文章ID
    //其中已读文章ID用这种形式:"1,3,4,5,100,1000"
    //在用户登陆时取出这个数据 dd
    $dd = "1,3,4,5,100,1000";
    $cc = explode(",", $dd);
    $cc = array_flip($cc);
    //把cc存成session以后不用再读数据库了
    session_register("dd");
    session_register("cc");
    //列出BBS的文章列表时...设$ID为文章id
    if($cc[$ID])
    {
    //该文已读
    }
    else
    {
    //该文未读
    }
    ?><?
    //当用户读一篇文章时,如果 $cc[$ID] 有值则不管
    //如果没值,则以前没有读过改文,更新一次数据库
    $sql = "update xxx set ID='".$dd.",$ID'";
    mysql_query($sql);
    //将cc和dd更新
    $dd = $dd.",$ID";
    $cc[$ID] = 1;
    ?>
      

  8.   

    呵呵,Mistruster(弱智d)的方法不错啊,多谢。
      

  9.   

    对于Mistruster(弱智d)的方法我不是没想过。但是这样做我有一个疑问。大家都知道txt类型和vchar类型一样是变长的,应该尽量减少修改的次数。如果象上面说的做法,每有一个人看了帖子将会修改一次txt字段的长度,这会不会造成数据库的不稳定?已读的标识并不太影响bbs的好坏。做到cookie标记最近几天的未读就够了。为了做到精确标识而影响bbs的性能我觉得不太值得。但是楼主要求的是精确标识……
      

  10.   

    谢谢各位的指教,本人感觉受益匪浅,呵呵,多谢。由于本人开发的BBS是在企业内使用的,访问量不会很大,但是准确性很重要
    所以我觉得采用数据库存储的方法应该更适合一些,当然,如果在广域网内,
    用Gdj的方法应该更合适。这可能就是唠叨讲的,实用价值。我的理解不知道对不对,还得请各位发表意见啊。
      

  11.   

    to Gdj(陈水.智商只有129.非卖品):呵呵,你的担心也不无道理
    所以我说是单独建立一个表,只有两个字段,其中一个字段不断变长
    最多也只是影响到这一个表而已
      

  12.   

    这个表所有帖子页,及显示帖子列表页都要读写,不稳定的话会直接影响更个bbs的性能。因为有人回帖后就要重新标为未读,所以不能简单的只记一个已读ID,还要多记一个阅读时间。一个已读最少要占掉十几个字节。老用户占到几百K是很正常的。这样一个老用户每看一帖都得多读几百K的数据,如果看的是新帖还要多写几百K,一个普通的txt字段最长也才64k。所以现在发布的较好的免费bbs我看过都是用cookie非精确标识的,大概每用户占3k左右的cookie。
      

  13.   

    cookie记录吧,这个查询过与没有查询过,本身就是一个不确定的东西,比如,看过的又有好几个回复的,你说看还不是看,是吧~~所以,bbs加一个按id排序浏览,有些人不常上论坛,可以从第三页开始看,这样贴子都能按顺序看完!
    加个1小时,5小时,12小时,24小时,有新回复的小标志,这些就差不多了~
      

  14.   

    按现有的BBS。基本都是记录最后一次到访的时间吧。