设计聊天系统并支持At/mention别人的功能

在刷面筋的时候遇到了这类的题目。除了在课上说的类似whatsApp一样的database以外,DB schema 设计上需要注意什么,因为@XXX这些东西,单纯存在thread 的content里肯定不够,是不是需要另外在thread里开一个column专门存这个group chat thread table里加at的对象的column呢?

另外还有个问题就是新老版本推出时如何向前向后兼容,需要注意哪些组件呢?谢谢老师!

我假定 At 这个功能是在群聊场景下。数据库层面我觉得不需要 At 对象的 column,所有的文字内容就按照跟之前一样的方法 deliver 就好。在客户端上,检测到有 @本人的信息,就在 Thread 上进行标记就行了。

App 新老版本兼容主要看 API 有没有 breaking change. 如果没有,就没有兼容问题。如果有的话,新版本会用更新的 API 版本 (比如 V2),而旧版本可以用 V1。

老师是说, 这个at的提醒 是在client 端做的, server 不需要处理什么 直接一如既往fanout到client端就可以了是吧?

我指的是显示带有@的信息只需要原本的fanout即可,DB不需要改动。如果需要特别的 push notification,需要做特别处理。