问题描述
我正在构建一个简单的消息传递应用程序。我坚持为其实现未读计数实现。我有一些主意。我需要肯定的是,我在朝着正确的方向思考或我的方法存在任何牵强的问题。
让message.table
是
{
id: int,text: string,inBoxId: "...",createdOn: epochMs,updatedOn: epochMs,deletedOn: epochMs
}
要实现未读消息计数,我正在考虑保留一个辅助表,该表将保留上次读取的游标值(最后由用户读取时创建)。
让read_cursors.table
是
{
userId: "...",lastReadCursor: "..."
}
应用程序将使用计算未读计数
SELECT message(id) from message where message(createdOn) > read_cursors(lastReadCursor);
我了解您需要在邮件(createdOn)上创建索引。这将在数据库上产生额外的空间成本。如果我不创建索引(节省空间),则可以在不影响性能的情况下(即缓存未读计数)使用查询进行操作。
也愿意了解替代模型。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)