网络聊天应用程序数据库架构

Web Chat Application Database Scheme

我正在制作一个类似分类的 Web 应用程序,我想在其中实现聊天消息模块。在网上搜索时,我发现了一个数据库方案 ERD 图。

我能够理解它,但让我困惑的是消息实体中的 is_from_sender 列。我发现样本数据是 this。 因为我是初学者,所以我需要解释一下这是如何工作的,为什么要使用 is_from_sender?

我认为 is_from_sender 列的目的是一个布尔字段, 是区分每条消息是来自发送者还是来自接收者,以便在应用程序中对其进行一些逻辑处理。例如:我的消息将以灰色背景显示,接收者将以蓝色背景显示。 此 ERD 的建模方式使您无法知道是谁发送的(只能知道是谁通过 header 发起了对话)。 设计者想知道此信息,因此他没有向消息 table 添加发件人用户 ID(外键)的 int 列,而是添加了一个扩展性较小的位列 size