在graphql查询期间连接表的最佳做法是什么

时间:2017-06-02 20:09:26

标签: graphql

如果我的graphql有一个用户,其中包含明显已发布用户的帖子,那么最佳做法是有效地获取数据,但不是来自数据库的请求。

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

应该加入帖子,但不能重新加入用户 { users { followedPosts { title } } }

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

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

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

此外,如果连接不常见,那么检查将要请求的海报并将其全部一次性获取,而不是将graphql解析为链。

1 个答案:

答案 0 :(得分:0)

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

这通常绰绰有余。