繁体   English   中英

Graphql 模式设计最佳实践

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM