消息应用程序MySQL数据库设计

时间:2018-03-27 15:18:41

标签: mysql database

我正在创建一个消息传递应用程序,并且无法提供可扩展的数据库设计。

我在网上找到了以下数据库设计但有几个问题。

黄色,您将看到我将使用的表格

enter image description here

我是从这个网站https://github.com/yoosuf/Messenger

获得的

我的问题是:

  • 我没有看到任何跟踪未读邮件的方法。我是否应该添加一个名为unread_conversations的表,其中每次用户发送消息时,都会将记录插入到与会话的每个参与者的conversation_iduser_id的unread_conversations中?

  • 当我获取用户对话时,查询将是

    select (whatever columns I need) from conversations inner join messages on messages.id = conversations.last_message_id where user_id = {user_id} AND conversations.id not in ( select conversation_id from deleted_conversations where user_id = {user_id} ) ORDER by conversations.update_at DESC LIMIT 50

(我会将最后一条消息ID存储在conversations表中以显示预览)

我主要担心的是,随着数据库的扩展,由于所有表格而导致的所有这些连接都不会使其成为可扩展的设计。

虽然从设计的角度来看,感觉还不错。

思想?

0 个答案:

没有答案
相关问题