2016-08-31 1 views
1

Wie können Tags in Datensätzen in Firebase gespeichert werden? Zum Beispiel habe ich einen Benutzer, der Favoriten hat und er/sie kann mehrere Favoriten hinzufügen. Ich möchte in der Lage sein, nach einem oder mehreren Tags zu suchen.Kann ich Tags in Firebase speichern und abfragen?

Dies ist die grundlegende Struktur

Users{ 
favourites: { 
    fav_1:{ 
     tags:[tag1,tag2,tag3,...] 
    } 
    fav_2:{ 
     tags:[tag1,tag2,...] 
    } 

    ..... 
} 

}

Antwort

5

In Firebase (wie bei den meisten NoSQL-Datenbanken), werden Sie oft müssen Sie Ihre Daten für die Art und Weise modellieren Ihre Anwendungen es benutzen will.

Ihr aktuelles Modell ist ideal, um die Liste der Tags (fav_1, fav_2) für einen bestimmten Benutzer zu finden. Es ist jedoch nicht so toll, um die Liste der Benutzer für ein bestimmtes Tag herauszufinden. Um letzteres zu Abfrage zu ermöglichen, eine invertierte Lookup-Liste auf Ihr Datenmodell hinzu:

Tags: { 
    fav_1: { 
     User1: true, 
     User2: true 
    } 
    ... 
} 

Durch die Kombination dieses mit Ihrem ursprünglichen Modell, können Sie die Liste der Tags für einen Benutzer sowie die Liste der Benutzer nachschlagen für eine Markierung.

Eine gute Einführung in die NoSQL-Datenmodellierung finden Sie unter NoSQL data modeling.

+0

Danke für die Antwort. Ich möchte in der Lage sein, mehrere Tags zu einem Favoriten zu speichern. Ich habe die Frage für eine klarere Beschreibung bearbeitet. – user3552551

+0

Hallo Puf. Ich habe mich gefragt, ob in einem Szenario wie "Post' '' '' '' 'haben kann, ist es richtig, dass jeder' Post' ein 'tags' hat (bestehend aus' tag_id's) und es sollte separate 'Tags geben 'Knoten, der die Liste von' tag_id' enthält, denen auch die 'post_id's zugeordnet sind? (zB 'post - post_id - tags []', 'tags - tag_id - posts []') - Ich habe mich umgesehen und das ist die einfachste Struktur, die ich mir bisher vorstellen konnte. Ich wollte die Tags haben auch für die Suche nach Beiträgen verwendet werden (ähnlich zu Stack Overflow) –

+1

Normalerweise modelliere ich solche Kategorisierungsprobleme, indem ich die Relation in beide Richtungen speichere, also vom Post zu seinen Kategorien und von den Kategorien zu seinem Post. Siehe meine Erklärung hier: http://stackoverflow.com/questions/40656589/firebase-query-if-child-of-child-contains-a-value. Fühlen Sie sich frei, eine neue Frage zu öffnen, um weiter zu diskutieren, da Kommentare subideal sind, um die Datenstruktur zu zeigen. :-) –

Verwandte Themen