Hantera relationer i Fabric API för GraphQL

Med GraphQL kan du upprätta relationer mellan olika typer, inklusive 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. I fönstret Schemautforskaren väljer du ellipsen bredvid en typ och väljer sedan alternativet Hantera relationer . Skärmen Hantera relationer visas.

    Skärmbild som visar var du väljer ny relation i fönstret Hantera relationer.

  2. 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.

    Skärmbild som visar exempel på val för de fem obligatoriska fälten för en ny relation.

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 innehåller flera fält.

  1. Välj Skapa relation. Din lista över relationer visar nu den nyligen skapade relationen.

    Skärmbild som visar den nyligen skapade relationen i fönstret Hantera relationer.

  2. 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 Böcker och författare väljer du till exempel en länktyp som BooksAuthors och fält som BookId och AuthorId som länkar från och till fält.

Skärmbild av den nya relationsdialogrutan för ett många-till-många-förhållande.

Överväganden för många-till-många-relationer

Om länkningstypen har ett eller flera fält som inte refereras till som Från-fält eller Till-fält, genererar API för GraphQL automatiskt följande fyra en-till-många-relationer:

  • 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 och låta frågor eller mutationer referera 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 frågor eller mutationer behöver inte referera till länkningstypen för att använda relationen.

Ta bort en relation

Ta bort en relation från skärmen Hantera relationer genom att markera kryssrutan bredvid relationen och välja Ta bort.