【问题标题】:What is the best practice to join tables during graphql query在 graphql 查询期间连接表的最佳做法是什么
【发布时间】:2017-11-04 07:46:33
【问题描述】:

如果我的 graphql 有一个用户,该用户的帖子显然已经发布了用户,那么是否有一个最佳实践可以有效地获取数据,但不会超过数据库的请求。

不应加入帖子表 { users { first_name } }

应该加入帖子但不能返回给用户 { users { followedPosts { title } } }

应该加入帖子并返回给用户以获取海报 { users {followedPosts { poster { first_name } } } }

我考虑过检查初始解析器上的上下文以查看是否获取了适当的字段,但在我使用的库中它非常难看。

我想知道是否存在解决此问题并添加适当联接的良好做法,或者是否每个人都只是查询数据库并尝试进行一些缓存。

另外,如果连接不常见,那么检查将被请求的海报并一次性获取它们,而不是让 graphql 沿着链解析。

【问题讨论】:

    标签: graphql


    【解决方案1】:

    坚持对单独的表进行单独的查询,并查看DataLoader 以批处理对同一个表的多次调用,并最终对每个请求进行一些缓存。

    这通常绰绰有余。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-06
      • 1970-01-01
      • 2011-11-23
      • 2017-05-22
      • 1970-01-01
      相关资源
      最近更新 更多