2016-07-20 9 views
2

Ich mache eine Freundesliste Chrome-Erweiterung für ein Online-Browser-Spiel, das ich spiele. Ein Merkmal ist, dass Freunde miteinander chatten können. Die Datenbank, die ich verwende, heißt Firebase und speichert ihre Daten in einem JSON-Baumformat.Beste Möglichkeit, Chats in der JSON-Baumdatenbank zu speichern?

Meine Datenbank hat diese Struktur:

Users 
    | 
    |_USER1 
    |  | 
    |  |__FRIENDS 
    |  
    |_USER2 
      | 
      |__FRIENDS 

Ich versuche, herauszufinden, was der beste Weg wäre, Chats zu speichern als Teil dieser Datenbank. Die Option Ich bin auf jetzt gelehnt halten würde nur eine Kopie der beiden Nutzer-Chats in ihren beiden Abschnitt des Benutzerverzeichnis, wie folgt aussehen:

Users 
    | 
    |_USER1 
    |  | 
    |  |__FRIENDS 
    |  | 
    |  |__CHATS 
    |   | 
    |   |__chat w/USER2 
    |  
    |_USER2 
      | 
      |__FRIENDS 
      | 
      |__CHATS 
       | 
       |__chat w/USER1 

Dies würde es auf jede Nachricht machen, so sende ich‘ d muss zwei Objekte aktualisieren, eines in jedem Benutzerabschnitt. Hinweis: Da der Baum als "Schlüssel/Wert" -Paare formatiert ist, würden im CHAT-Abschnitt jedes Benutzers die Schlüssel der Name des anderen Benutzers sein, während der Wert die Liste der gesendeten Nachrichten wäre.

Ist das eine gute Möglichkeit, eine solche Datenbank zu organisieren? Das Spiel ist ziemlich klein und ich erwarte keinen großen Traffic.

Antwort

1

Wenn es um die Firebase-Datenbank (und die meisten NoSQL-Datenspeicher) geht, ist es oft am besten, Ihre Daten zu reduzieren.

Users 
    | 
    |_USER1 
    |  | 
    |  |__FRIENDS 
    |  
    |_USER2 
      | 
      |__FRIENDS 
UserChats 
    | 
    |_USER1 
    |  | 
    |  |__chat w/USER2 
    |  
    |_USER2 
      | 
      |__chat w/USER1 

Auf diese Weise können die Freundesliste des Benutzers nachschlagen können, ohne ihre Liste der Chats laden zu müssen.

Schauen Sie auch bei dieser Antwort über ein bequemes Schema für die Konstruktion von 1: 1 Chat-Raum Identifikatoren: Best way to manage Chat channels in Firebase

+0

Ich werde Ihren Vorschlag übernehmen und die Chats in einen anderen Teil der Datenbank zu trennen. Ihr bereitgestellter Link bietet eine Möglichkeit, nur 1 Objekt für jede gesendete Nachricht zu aktualisieren, also probiere ich das aus. Vielen Dank. – MarksCode

Verwandte Themen