2017-06-02 4 views
0

zu verbinden Wenn mein graphql einen Benutzer hat, der Posts hat, die offensichtlich Benutzer gepostet haben, gibt es eine Best Practice, um die Daten effizient zu erhalten, aber nicht über Anfrage von der Datenbank.Was ist die beste Methode, Tabellen während der graphql-Abfrage

sollte nicht beitreten Beiträge Tabelle { users { first_name } }

Beiträge kommen sollte, aber nicht zurück auf Benutzer { users { followedPosts { title } } }

sollten Beiträge kommen und wieder auf Benutzer für Poster { users {followedPosts { poster { first_name } } } }

Ich habe darüber nachgedacht, Inspektion der Kontext auf dem initialen Resolver, um zu sehen, ob die entsprechenden Felder geholt werden, aber in der Bibliothek, die ich benutze, ist ziemlich hässlich.

Ich würde gerne wissen, ob es gibt gute Praktiken, die existieren, um dies zu lösen und fügen Sie geeignete Joins oder fragt jeder nur die Hölle aus der Datenbank und versuchen, etwas Caching zu tun.

Auch, wenn Joins nicht üblich sind, was ist mit der Inspektion der Plakate, die angefordert werden und holen sie alle in einem Rutsch statt als graphql löst die Kette.

Antwort

0

Bleiben Sie bei separaten Abfragen für separate Tabellen und sehen Sie sich DataLoader an, um mehrere Aufrufe an die gleiche Tabelle zu verarbeiten, und schließlich einige Caches pro Anfrage.

Dies ist normalerweise mehr als genug.

Verwandte Themen