如何使用 mongoDB 为聊天应用程序设计数据库模式

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

我正在尝试使用 MongoDb 为一个简单的聊天应用程序设计数据库模式。要求很简单:

  1. 用户可以实时向“朋友”(现有联系人)和“陌生人”发送消息。
  2. 用户可以加载他们的对话历史。
  3. 用户可以在自己的收件箱中删除自己的对话,而不会删除其他用户收件箱中的对话。
  4. 当用户与新朋友聊天时,新朋友应该添加到用户的联系人列表中。
  5. 如果用户在收到消息时处于离线状态,则应将其标记为未读。

我自己提出了如下简单的模式,如果有人能给我一些想法,我真的很感激,我怎样才能使它对性能更友好?

interface Inbox {
     uid: string,
     userId: string,
     participants: Participants[]
}

interface Participant{
    uid: string,
    first_name: string,
    last_name: string,
    avatar: string,
    email: string,
    created_at: string,
    inbox_id: string
}

interface Message {
   uid: string,
   from: string,
   to: string,
   msg_type: strig,
   file_url: string,
   text: string,
   seen: string    

}

each Inbox 与一个用户相关联,对话中的两个参与者被创建为两个 participants 分别存储与收件箱相关联。 Messages 是一个不同的表,根据收件箱所有者和对话参与者获取。

目前的问题是,在发送消息和获取消息时,会话双方都有很多更新字段。

有什么建议可以使它对性能更友好吗?

谢谢!

javascript node.js database mongodb schema
© www.soinside.com 2019 - 2024. All rights reserved.