首页 文章

Graphql消息线程设计

提问于
浏览
0

我正在创建一个消息线程模式,用户加入消息线程,并获取此特定线程的消息 .

前端:每条消息都应该显示一个小的头像和名称这意味着我需要获取为每条消息发送消息的用户(这是当前的实现 - 运行数据库查询以获取每个消息的用户)

解决方案是在线程级别抓取用户 . 这意味着我必须将 message.user_idthread.thread_users['user_id'] 匹配 . 如果我在前端做到这一点会不会很奇怪?我觉得我应该在后端附加该特定消息的用户?

有没有办法将我的 thread.thread_users 数组传递给我的 messages 连接?

这是我当前的查询:

thread(input...) {
  id
  // THIS HOLDS THE USERS WHO ARE IN THIS THREAD
  threadUsers {
    name
    firstName
    avatar {
      original
      thumbnail
      medium
    }
  }
  lastReadMessageId
  messages {
    edges {
          cursor
          node {
            from {
              firstName
              lastName
            }
            messageContent
          }
    }
  }
}

我想问题是:

是否可以从Message类型中获取 thread_users 数组?所以我可以将 thread_usermessage.user_id 匹配

或者我是否应该将 thread_users 与前端的 message.from_id 相匹配?

数据库看起来像这样:

线:

  • id

  • created_at

  • owner_id

消息:

  • from_id(发送邮件的用户)

  • messageContent(消息内容)

thread_users :(只是记录用户在哪些线程中)

  • thread_id

  • user_id

1 回答

  • 0

    我最终做的是让前端处理这个 . 我可能已经将Graphaloader与Graphql一起使用,但没有必要 .

相关问题