7
回答
求助,站内消息如何处理
利用AWS快速构建适用于生产的无服务器应用程序,免费试用12个月>>>   

csdn中的效果

一直对这个系统消息发送没有思路,数据库的结构要怎么样来设计。

<无标签>
举报
t150ckh
发帖于6年前 7回/236阅
共有7个答案 最后回答: 6年前

系统群发信息和普通信息,肯定是有区别字段的,单独一张表也行。
群发的信息是有id的撒。
用户那边只需要一个字段记录他看到哪个id了,假设开始是0,群发信息的id是1,那么,这条信息就会被显示在用户那,然后用户处理了,字段改成1,那么,用户就看不到这条系统群发信息了。
和普通信息在一张表,这个就不说了,不在一张表,取记录就union一下。
或者每个用户对群发信息的操作记录单独一张表,删除或查看信息的记录,是随着用户的操作而变更的,用户操作不可能是同一时间产生,就把N条记录的创建时间给拆分开了。可以避免出一个系统群发信息就要一次生成对所有用户的信息记录。
发一个群发,就把一次产生N条信息记录,转换成1条信息记录+N个操作记录,操作记录最大N,最小为0,数据库压力肯定是分散了。

--- 共有 2 条评论 ---
t150ckh我就是在想这个每群发一个系统消息要不要立即就添加到用户收件表中去,还是说等用户登陆后才去检测有没有系统发送的消息。 6年前 回复
iSea这个结果都是一样的,只是一次性给所有用户发同一条,和只发一条,用户浏览过则添加一条标记可能数据库保存的内容个会少些,但是性能上只发一条会好很多 6年前 回复
这个问题问的太宽,不知道你想问什么
--- 共有 2 条评论 ---
虫虫回复 @t150ckh : 这是个问题 @红薯 6年前 回复
t150ckh站内消息 用户->用户 单用户->多用户 管理员->群发所有用户 用户查看后可以删除, 有户之间单发比较简单,现在系统群发想不到好的办法,请教各位高手,这种情况数据表如何设计 6年前 回复

对这个系统消息想了良久有如下思路不知高手们看法如何?
整个数据库分为两个表一个发送表,接收表(多记录),所有系统消息发送不一次性向接收表添加,在用户登陆系统后采用异步请求去检测系统消息。检测发送表的系统消息和接收表的系统消息是否相等,相等则说明没有最新系统消息,反之则把发送表的系统消息记录到当前用户的接收表中。

@Andre.Z  @ 青春陪葬了无知的年华  @虫虫 

引用来自“t150ckh”的答案

对这个系统消息想了良久有如下思路不知高手们看法如何?
整个数据库分为两个表一个发送表,接收表(多记录),所有系统消息发送不一次性向接收表添加,在用户登陆系统后采用异步请求去检测系统消息。检测发送表的系统消息和接收表的系统消息是否相等,相等则说明没有最新系统消息,反之则把发送表的系统消息记录到当前用户的接收表中。

@Andre.Z  @ 青春陪葬了无知的年华  @虫虫 

还是应该把这个插入的操作放在查看这个动作上,相比逻辑更科学点!
顶部