【问题标题】:Graphql message thread designGraphql消息线程设计
【发布时间】:2017-11-26 15:18:56
【问题描述】:

我正在创建一个消息线程模式,用户可以在其中加入消息线程,并获取该特定线程的消息。

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

解决方案是在线程级别获取用户。这意味着我必须将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 匹配?

数据库如下所示:

线程:

  • 身份证
  • created_at
  • owner_id

消息:

  • from_id(发送消息的用户)
  • messageContent(消息内容)

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

  • thread_id
  • user_id

【问题讨论】:

    标签: schema graphql


    【解决方案1】:

    我最终做的是让前端处理这个问题。我本可以将 Dataloader 与 Graphql 一起使用,但没有必要。

    【讨论】:

      猜你喜欢
      • 2011-09-26
      • 1970-01-01
      • 1970-01-01
      • 2010-12-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多