消息应用程序的数据库架构

问题描述 投票:0回答:3

在我的消息应用程序中,我想要提供的功能是:

  • 向多人发送消息
  • 接收发送给用户的消息
  • 按用户分组显示消息,如 Facebook 消息
  • 但是当用户向多人发送消息时,这不会是群组消息,而是这些消息将按用户划分成组

我的数据库架构是这样的 My database schema

该模式能够提供上述所有功能,但是从用户组中的这种模式中获取消息非常复杂。 谁能建议我一些更好的架构??

未命名的表是接收者映射,忘了写jpg格式的名称。 :(

database database-design database-connection
3个回答
12
投票

一张桌子有什么问题?

消息id 时间戳 到 从 主题 身体 附件指针 起源

...

我可能会因此而挨打,但是...... 嗯...好点

Messages
message_id
timestamp
subject
body
attachment

MessageReference
mr_id
message_id
to
from

编辑:还发现了这些:

消息系统数据库架构

线程消息系统数据库架构设计

我应该如何为包含附件的消息传递系统设置数据库架构?

用于向多个用户发送消息的数据库架构


0
投票

您好,您可以使用连接表。这是一个非常简单的架构,很多巨头都在使用,比如 YouTube、Reddit 等。

enter image description here

这里有一个视频,解释了如何只需 2 个查询即可使您的应用程序上线。


0
投票

另一种方法也允许群组消息传递,并且还使用另一个父表进行聊天会话,这可能允许更快的过滤:

Chats
-ChatId

ChatUsers
-ChatUserId
-ChatId(FK)
-UserId(FK)

ChatMessages
-ChatMessageId
-ChatUserId(FK)
-Msg
-Date and other meta
© www.soinside.com 2019 - 2024. All rights reserved.