一张消息表,和一张用户表,如何在前台给每个用户,标记,每个用户是已读还是未读,
最好是不建用户和消息的关联表
如果是简单的标记已读未读,就没必要拿出来问了。想想如果系统给用户群发一条消息。100000条数据,难道你要生成100000条同样的消息在数据里然后记录每个人的状态吗?
建议群发的消息只存一条。当用户点击某一条消息时,记录点击的消息ID,也就是反向思考,打开一条新信息就在数据库里存一条记录。 没有记录的就是未读取的
添加消息时默认未读,当用户点击进去了就修改一个状态变成已读
在生成消息的时候就记录起来是否已读,是谁的消息。当用户点击的时候,就改变消息的状态
不考虑数据的实时性,完全可以把用户名作为冗余字段硬编码写在消息表里面,不需要查用户了。
添加消息时默认未读,当用户点击进去了就修改一个状态变成已读
如果说系统消息可以只保留一条的话, 用户已读通过创建一条表示记录,倒是个可行的方式;那么看来,系统消息的删除也是可以通过这种方式来处理和解决的了?
消息表应该有已读未读的状态字段的吧?消息表中肯定有用户表中用户主键的吧?根据业务具体情况可以加一些冗余字段想用户名、登录名等等。。。但是每次前台设置已读未读状态都要存数据库的吧?所以不大明白楼主说的关联表是啥? 关于降低数据库压力。。。还得高手来解决。。。。。。