Gerenciar relacionamentos na API de malha para GraphQL
Um dos recursos mais poderosos do GraphQL é a capacidade de estabelecer relações entre tipos, incluindo suporte para relações um-para-um (1:1), um-para-muitos (1:N) e muitos-para-muitos (M:N).
Criar uma nova relação um-para-um (1:1)
No painel Explorador de esquemas, selecione as reticências ao lado de um tipo e selecione a opção Gerenciar relações. A tela Gerenciar relacionamentos é exibida.
Entidade de destino Nova relação. Neste exemplo, criamos uma nova relação um-para-um entre o tipo Product e o tipo ProductModel , com base no campo ProductModelID que existe em ambos os tipos. Selecionamos Um a um para Cardinalidade, selecionamos os tipos De e Para e, em seguida, selecionamos os campos De e Para para esta relação.
Nota
Você pode escolher vários campos nos seletores de campo De e Para. Esse recurso permite que você crie relações que compreendem vários campos.
Selecione Criar relação. Sua lista de relacionamentos agora mostra o relacionamento recém-criado.
Selecione o X no canto superior direito para fechar a tela Gerenciar relacionamentos .
Relações um-para-muitos (1:N) e muitos-para-muitos (M:N)
Para criar uma relação um-para-muitos (1:N), por exemplo, entre Produto e Pedido, onde cada produto pode ser associado a vários pedidos, selecione Um para muitos como cardinalidade. Esta relação reflete a ideia de que um único produto pode ser associado a várias encomendas, mas cada encomenda está ligada a apenas um produto.
Para uma relação muitos-para-muitos (M:N), como entre Livros e Autores, onde um livro pode ter vários autores e um autor pode ter vários livros, escolha Muitos para Muitos como cardinalidade. Você precisa ter um tipo de vinculação em seu esquema para acomodar esse tipo de relacionamento.
A caixa de diálogo Novo relacionamento mostra outro conjunto de seletores quando você escolhe Muitos para muitos como cardinalidade. No exemplo de Livros e Autores, você selecionaria um tipo de vinculação, como BooksAuthors, e campos como BookId e AuthorId como a vinculação de e para campos.
Considerações para relacionamentos muitos-para-muitos
Se o tipo de vinculação contiver um ou mais campos que não são referenciados como campo(s) De ou campo(s) Para, a API para GraphQL gerará automaticamente quatro relações um-para-muitos, da seguinte maneira:
- Uma relação um-para-muitos do tipo De para o tipo Vinculação
- Uma relação um-para-muitos do tipo Vinculação para o tipo De
- Uma relação um-para-muitos do tipo Para para o tipo Vinculação
- Uma relação um-para-muitos do tipo Vinculação ao tipo Para
Eles permitem que você faça referência aos campos desvinculados no tipo Vinculação em quaisquer consultas ou mutações, ao mesmo tempo em que permite consultas/mutações que fazem referência às relações em qualquer direção.
Caso não haja campos desvinculados no tipo Vinculação, uma única relação muitos-para-muitos será criada, e quaisquer consultas ou mutações não precisarão fazer referência ao tipo Vinculação para aproveitar a relação.
Excluir um relacionamento
Você pode excluir um relacionamento na tela Gerenciar relacionamentos marcando a caixa de seleção ao lado do relacionamento e, em seguida, selecionando Excluir.