首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用自定义属性描述多到多个GrhapQl关系的架构?

如何使用自定义属性描述多到多个GrhapQl关系的架构?
EN

Stack Overflow用户
提问于 2022-06-09 06:41:00
回答 1查看 170关注 0票数 0

如何使用自定义属性描述多到多个GrhapQl关系的架构?

嗨,伙计们!我有以下表格:

代码语言:javascript
复制
+-------------+--------------+----------------------------+
|                        Product                         |
+-------------+--------------+----------------------------+
| id          | int(11)      | PRIMARY KEY AUTO_INCREMENT |
| name        | varchar(255) |                            |
+-------------+--------------+----------------------------+

+-------------+--------------+----------------------------+
|                        Nutrient                         |
+-------------+--------------+----------------------------+
| id          | int(11)      | PRIMARY KEY AUTO_INCREMENT |
| name        | varchar(255) |                            |
| unit        | varchar(255) |                            |
| alias       | varchar(255) |                            |
+-------------+--------------+----------------------------+

+-------------+--------------+----------------------------+
|                  Product_To_Nutrient                    |
+-------------+--------------+----------------------------+
| nutrientId  | int(11)      | PRIMARY KEY FOREIGN KEY    |
| productId   | int(11)      | PRIMARY KEY FOREIGN KEY    |
| amount      | int(11)      |                            |
+-------------+--------------+----------------------------+

为了获得营养,我用数据采集器。

我如何描述我的模式,以便我可以运行以下查询并获得每种养分的数量?或者我需要重建我的数据库,如果是的话,哪种架构是最优的?谢谢你的建议:)

代码语言:javascript
复制
    query Product {
     getProducts {
      id,
      name,
      nutrients: {
       name,
       unit,
       alias,
       AMOUNT
      }
    }

我的堆栈: TypeOrm,TypeGraphQL,MicroOrm,NodeJs。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-09 16:43:25

  • Product_To_Nutrient表重命名为ingredients (为了方便起见)
  • 并将unit属性从nutritient移到您的ingredient中,因为了解units中的quantity很重要。(在当前情况下,如果您需要更新unit,还必须使用该nutritient更新所有ingredients

使用GraphQL查询时,您必须通过ingredients完成

代码语言:javascript
复制
query Product {
  getProducts {
    id,
    name,
    ingredients: {
      nutrient: {
        id,
        name,
        alias
      },
      quantity,
      unit
    }
  }
}

要加载ingredient,在查询产品时,可以使其为一段“热切的”关系

使用Dataloader加载链接到ingredient的所有nutrients

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72555752

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档