问题描述: 
本人正在做一个BBS论坛的程序,该程序里面有一个系统通知的功能。通知的消息存储在一个表里面,并且只存储一份,而不是每个用户拷贝一份。 
现在问题就来了,用户如何知道这条通知是否阅读过了呢? 
  我试着建立另外一个表来标注是否阅读过这个通知,但是如果用户特别多的话,检索速度就会特别慢,这个问题困扰我很久了,请大家帮忙! 
    (我测试下来,10000个用户注册,然后同时有300条左右的通知在信箱里面的话,速度就已经很慢了,然而系统的设计目标肯定不止1万用户,所以 ... ...)
如果您有好的解决方案,欢迎推荐! 
如解决,立马送分,如觉得分不够,我可以再加,在线等!!!

解决方案 »

  1.   

     用户在检查收件箱时,再去 select,速度会很慢吗?看下 sql语句有没有的优化
      

  2.   

    你 这样做是不行的  每个用户都要保存这个通知的 不然你知道他收没收到
       你也不知道它的状态  已读 还是未读 或者是删除了
    你可以将它放如 消息的属性当中 来个标志   用户可以对它进行操作
       你问这个问题 可以说明你的bbs中互相发消息还没做成功
      

  3.   


    在用户表里面加两个字段,[最后阅读消息ID],[最后阅读时间]用户登陆时得到[最后阅读消息ID]这个id,消息表中晚于这个id的消息都是未读,每次读一篇新的消息时
    就可以修改用户的[最后阅读消息ID]