关于聊天记录表设计的探讨

来源:9-21 接收方获得消息后重构渲染

LBruce

2021-03-26

本课程中设计的聊天记录表包含了聊天消息,发送者id,接收者id,签收状态等。但个人觉得可以重新设计成两个表,一个是聊天内容表,另一个是聊天索引表。

  1. 聊天内容表内容为消息ID,消息内容,消息类型,创建时间
  2. 聊天索引表为主键,一方用户id,另一方参与用户id,类型(发送方还是签收方),消息ID

比如我向老师发送了一条消息,那么向聊天内容表插入一条记录,id为100,同时往索引表里储存两条记录,

一条是我的索引:一方用户为我的id,另一方用户id为老师,类型是发送,同时消息ID为100。
另一条索引是老师的索引:一方用户为老师id,另一方用户id为我的id,类型是签收,同样消息ID也为100。

这样有一个非常明显的优点就在于,

可以保持接受双方的历史消息独立。

比如我把这条消息删除了,只需要在索引表中把我这个用户关联被删除消息的索引标识为删除就好,老师关联被删除消息的索引不变。那么我这个用户就再也看不到发送给老师的这条消息了,但是却不影响老师看到自己接收到的这条消息。
不知老师有什么见解?

写回答

1回答

风间影月

2021-03-26

可以的呀,没毛病,可以发散思维更好了,本身因为课程时间受限,业务可以做的更好,有很多同学也都自行扩展了,挺好嗯~

1
1
LBruce
谢谢老师
2021-03-26
共1条回复

Netty+Spring Boot仿微信-全栈开发高性能后台及客户端

SpringBoot/Netty+MUI全栈开发 同时搞定后台+ Android&iOS

1498 学习 · 684 问题

查看课程