在 Fabric API for GraphQL 中管理关系
GraphQL 最强大的功能之一是能够跨类型建立关系,包括支持一对一 (1:1)、一对多 (1:N) 和多对多 (M:N) 关系。
创建新的一对一 (1:1) 关系
在架构资源管理器窗格中,选择类型旁边的省略号,然后选择“管理关系”选项。 此时将显示管理关系屏幕。
选择“新建关系”。 在本示例中,我们基于 Product 类型和 ProductModel 类型中都存在的 ProductModelID 字段,在这两种类型之间创建新的一对一关系。 我们选择“一对一”作为基数,选择“来源”和“目标”类型,然后为此关系选择“来源”和“目标”字段。
注意
可在“来源”和“目标”字段选取器中选择多个字段。 此功能允许创建包含多个字段的关系。
选择“创建关系”。 现在,关系列表会显示新创建的关系。
选择右上角的 X 以关闭管理关系屏幕。
一对多 (1:N) 和多对多 (M:N) 关系
例如,若要在产品和订单之间创建一对多 (1: N) 关系,其中每个产品可以与多个订单关联,请选择“一对多”作为基数。 这种关系反映了这样一种想法:单个产品可以链接到多个订单,但每个订单只能链接到一个产品。
对于多对多 (M:N) 关系,例如书籍和作者之间,一本书可以有多个作者,一个作者可以有多本书,请选择“多对多”作为基数。 架构中需要有一个链接类型来适应这种关系。
当选择“多对多”作为基数时,新建关系对话框将显示另一组选取器。 在书籍和作者示例中,可以选择链接类型(如 BooksAuthors)和字段(如 BookId 和 AuthorId)作为链接“来源”和“目标”字段。
多对多关系的注意事项
如果链接类型包含一个或多个未作为来源字段或目标字段的字段,则 API for GraphQL 会自动生成四个一对多关系,如下所示:
- 从来源类型到链接类型的一对多关系
- 从链接类型到来源类型的一对多关系
- 从目标类型到链接类型的一对多关系
- 从链接类型到目标类型的一对多关系
这关系允许在任何查询或突变中引用链接类型中的取消链接字段,同时允许在任何方向引用关系的查询/突变。
如果链接类型中没有取消链接字段,则将创建单一的多对多关系,并且任何查询或突变都不需要引用链接类型来利用该关系。
删除关系
可通过选择关系旁边的复选框,然后选择“删除”,从管理关系屏幕中删除关系。