我正在一个B/S的程序未读系统消息统计一块。如果管理员要发布一条系统消息,并且用户在登入时有未读系统消息提示,是不是就必须要再数据库里面给每个用户添加一条系统消息,并且加入一个字段flag来设置是否已读。如果按这种方式,如果有一万个用户,是不是就得在数据库中插入一万条数据,如果每天发十条,那就是10万,久而久之对于服务器来说,是不是难以承受,大家有什么好的想法,请赐教!

解决方案 »

  1.   

    还有一个问题,你是给用户加一个flag做标识是吗,用户跟消息是什么关系啊,管理员是不是可以给同一个用户发多条消息啊
      

  2.   

    有这么容易吗?
    我唯一想到得,用户和消息是多对多,加个中间表,里面有主键、用户ID、消息ID、标记了。但是如果有10万个用户,一条消息,那么在这个中间表就要有10万条记录。
      

  3.   

    最近有弄了一个这个功能,说下我的方法。
    1.一个消息表,消息id,消息标题,消息内容,其它省略。
    2.一个用户-消息关联表,用户-消息id,用户id,消息id,消息是否已读,消息isActive,其它省略。后台这块两个功能,一个是添加消息,就是添加一条消息记录表到消息表。一个是将此消息发送给所有用户,即插入记录到用户-消息关联表。
    前台可以通过查询用户-消息关联表来查看有没有新消息,设置已读,删除消息(只是删除了用户-消息关联表的记录)。