Hantera relationer i Fabric API för GraphQL
En av de mest kraftfulla funktionerna i GraphQL är möjligheten att upprätta relationer mellan olika typer, inklusive stöd för en-till-en-relationer (1:1), en-till-många (1:N) och många-till-många-relationer (M:N).
Skapa en ny en-till-en-relation (1:1)
I fönstret Schemautforskaren väljer du ellipsen bredvid en typ och väljer alternativet Hantera relationer . Skärmen Hantera relationer visas.
Välj Ny relation. I det här exemplet skapar vi en ny en-till-en-relation mellan produkttypen och typen ProductModel , baserat på fältet ProductModelID som finns i båda typerna. Vi väljer En till en för kardinalitet, väljer typerna Från och Till och väljer sedan fälten Från och Till för den här relationen.
Kommentar
Du kan välja flera fält i fältväljarna Från och Till. Med den här funktionen kan du skapa relationer som består av flera fält.
Välj Skapa relation. Din lista över relationer visar nu den nyligen skapade relationen.
Välj X i det övre högra hörnet för att stänga skärmen Hantera relationer .
En-till-många-relationer (1:N) och många-till-många (M:N)
Om du till exempel vill skapa en en-till-många-relation (1:N) mellan Produkt och Order, där varje produkt kan associeras med flera beställningar, väljer du En till många som kardinalitet. Den här relationen återspeglar tanken att en enskild produkt kan länkas till flera beställningar, men varje beställning är länkad till endast en produkt.
För en många-till-många-relation (M:N), till exempel mellan böcker och författare, där en bok kan ha flera författare och en författare kan ha flera böcker, väljer du Många till många som kardinalitet. Du måste ha en länkningstyp i schemat för att hantera den här typen av relation.
Dialogrutan Ny relation visar en annan uppsättning väljare när du väljer Många-till-många som kardinalitet. I exemplet med Böcker och författare väljer du en länktyp som BooksAuthors och fält som BookId och AuthorId som länkning från och till fält.
Överväganden för många-till-många-relationer
Om din länkningstyp innehåller ett eller flera fält som inte refereras till som Från-fält eller Till-fält, genererar API för GraphQL automatiskt fyra en-till-många-relationer, enligt följande:
- En en-till-många-relation från typen Från till länkningstypen
- En en-till-många-relation från länkningstypen till från-typen
- En en-till-många-relation från till-typen till länkningstypen
- En en-till-många-relation från länkningstypen till typen Till
Med dessa kan du referera till de olänkade fälten i länkningstypen i frågor eller mutationer, samtidigt som du tillåter frågor/mutationer som refererar till relationerna i valfri riktning.
Om det inte finns några olänkade fält i länkningstypen skapas en enda många-till-många-relation och eventuella frågor eller mutationer behöver inte referera till länkningstypen för att utnyttja relationen.
Ta bort en relation
Du kan ta bort en relation från skärmen Hantera relationer genom att markera kryssrutan bredvid relationen och sedan välja Ta bort.