Ich erstelle ein Nachrichten-Thread-Schema, wo Benutzer den Nachrichten-Thread beitreten, und holen Sie die Nachrichten für diesen bestimmten Thread.Graphql Nachricht Threadentwurf
Frontend: sollte jede Meldung einen wenig Avatar & Namen Das bedeutet, dass ich den Benutzer zu holen, den die Nachricht für jede einzelne Nachricht gesendet (dies ist die aktuelle Implementierung - eine DB-Abfrage läuft um den Benutzer zu erhalten für jede einzelne Nachricht)
Eine Lösung dafür war, die Benutzer auf der Thread-Ebene zu greifen. Dies würde bedeuten, dass ich die message.user_id
mit der übereinstimmen müsste. Wäre es komisch, wenn ich das im Frontend machen würde? Ich habe das Gefühl, ich sollte den Benutzer für diese bestimmte Nachricht an das Backend anhängen?
Gibt es eine Möglichkeit, meine thread.thread_users
Array in meine messages
Verbindung zu übergeben?
Hier wird die aktuelle Abfrage ich habe:
thread(input...) {
id
// THIS HOLDS THE USERS WHO ARE IN THIS THREAD
threadUsers {
name
firstName
avatar {
original
thumbnail
medium
}
}
lastReadMessageId
messages {
edges {
cursor
node {
from {
firstName
lastName
}
messageContent
}
}
}
}
Ich denke, die Frage ist:
Ist es möglich, die thread_users
Array aus dem Innern des Nachrichtentypen zu greifen? So kann ich dann passen die thread_user
zum message.user_id
oder ob ich sollte die thread_users
zum message.from_id
auf dem Front-End werden passend?
Die Datenbank sieht wie folgt aus:
thread:
- id
- created_at
- OWNER_ID
Nachrichten:
- from_id (der Benutzer, der die Nachricht gesendet)
- messageContent (der Inhalt der Nachricht)
thread_users: (einfach dort aufzeichnen, was die Nutzer in den Threads)
- thread_id
- user_id