![](/img/trans.png)
[英]What is the best way to design a graphql schema around objects with similar types?
[英]Graphql schema design best practice
我在下面有一个问题:
假设我有这样的产品类型
type Option {
id: Int!
value: String!
}
type Product{
id: Int!
name: String!
price: Float!
options: Option
}
如果我有这样的架构,每次我需要产品选项(我从请求中获得 productID)时,我需要查询整个产品(带有 id、名称、价格),并且我将有 2 个 Mysql 查询到数据库(1 到获取产品和 1 获取产品选项)。
我应该在这样的 Query 对象中有一个额外的独立字段来获取基于 productID 的产品选项吗? 如果我需要保持上面的嵌套模式,有没有办法在不执行它的父(产品)解析器的情况下获取产品选项?
product_options(productId: Int!) : Option
谢谢
我认为这更像是一个数据关系问题,但尽管如此......
IMO SQL 数据库中Product Options
的表(如果还没有)应该有一个列,该列是它所属/关联的Product
的外键。 这样做可以让您轻松拥有嵌套的 GraphQL 类型和字段级解析器。
完成后,您将不需要对 options 结构进行单独查询,只需查询Product.options
字段级解析器就足够了:
{
product(id: 123) {
options {
value
}
}
}
您可以在代码中使用已获取的Product.id
字段来运行其选项行的字段级查询。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.