Zarządzanie relacjami w interfejsie API sieci szkieletowej dla języka GraphQL
Jedną z najbardziej zaawansowanych funkcji w narzędziu GraphQL jest możliwość ustanawiania relacji między typami, w tym obsługi relacji jeden do jednego (1:1), jeden do wielu (1:N) i relacji wiele do wielu (M:N).
Tworzenie nowej relacji jeden do jednego (1:1)
W okienku Eksplorator schematu wybierz wielokropek obok typu i wybierz opcję Zarządzaj relacjami . Zostanie wyświetlony ekran Zarządzanie relacjami .
Wybierz Nowa relacja. W tym przykładzie utworzymy nową relację jeden do jednego między typem Product a typem ProductModel na podstawie pola ProductModelID, które istnieje w obu typach. Wybieramy opcję Jeden do jednego dla opcji Kardynalność, wybieramy typy Od i Do, a następnie wybieramy pola Od i Do dla tej relacji.
Uwaga
Możesz wybrać wiele pól w selektorach pól Od i Do. Ta funkcja umożliwia tworzenie relacji składających się na wiele pól.
Wybierz pozycję Utwórz relację. Lista relacji zawiera teraz nowo utworzoną relację.
Wybierz ikonę X w prawym górnym rogu, aby zamknąć ekran Zarządzanie relacjami .
Relacje jeden do wielu (1:N) i wiele do wielu (M:N)
Aby utworzyć relację jeden do wielu (1:N), na przykład między produktem i zamówieniem, gdzie każdy produkt może być skojarzony z wieloma zamówieniami, wybierz jeden do wielu jako kardynalność. Ta relacja odzwierciedla ideę, że jeden produkt może być połączony z wieloma zamówieniami, ale każde zamówienie jest połączone tylko z jednym produktem.
W przypadku relacji wiele do wielu (M:N), takich jak między książkami i autorami, gdzie książka może mieć wielu autorów, a autor może mieć wiele książek, wybierz pozycję Wiele do wielu jako kardynalność. Aby dopasować ten rodzaj relacji, musisz mieć typ łączenia w schemacie.
W oknie dialogowym Nowa relacja zostanie wyświetlony inny zestaw selektorów po wybraniu opcji Wiele do wielu jako kardynalności. W przykładzie książek i autorów należy wybrać typ łączenia, taki jak BooksAuthors, oraz pola, takie jak BookId i AuthorId, jako link z i do pól.
Zagadnienia dotyczące relacji wiele-do-wielu
Jeśli typ łączenia zawiera jedno lub więcej pól, do których nie odwołuje się pole z pól lub do pól, interfejs API dla języka GraphQL automatycznie generuje cztery relacje jeden do wielu w następujący sposób:
- Relacja jeden do wielu z typu Od do typu Łączenie
- Relacja jeden do wielu z typu Łączenie z typem From
- Relacja jeden do wielu z typu To do typu Łączenie
- Relacja jeden do wielu z typu Łączenie z typem To
Umożliwiają one odwołowanie się do niezwiązanych pól w typie Link w zapytaniach lub mutacjach, jednocześnie umożliwiając zapytania/mutacje odwołujące się do relacji w dowolnym kierunku.
W przypadku braku niezwiązanych pól w typie łączenia zostanie utworzona jedna relacja wiele-do-wielu, a wszystkie zapytania lub mutacje nie będą musiały odwoływać się do typu Link, aby wykorzystać relację.
Usuwanie relacji
Relację można usunąć z ekranu Zarządzanie relacjami , zaznaczając pole wyboru obok relacji, a następnie wybierając pozycję Usuń.