2017-11-22 2 views
0

Ich entwickle eine Anwendung, in der Benutzer Produkte innerhalb von Kategorien veröffentlichen. Ich benutze Firebase und ich versuche die Daten in der Datenbank zu reduzieren, aber ich bin mir nicht sicher über die Verbindungen der Beiträge mit den Kategorien. HierSo glätten Sie Daten auf Firebase

ist die Datenbank-Design:

"categories": { 
    "category1": { 
    "id": "1", 
    "name": "computers" 
    }, 
    "category2": { 
    "id": "2", 
    "name": "Furniture" 
    }, 
    "category3: { 
    "id": "3", 
    "names": "Books" 
    }, 
} 
"users":{ 
    "email": "[email protected]"  
    "posts": { 
    "post1": { 
     "id": "1" 
     "title": "Selling my guitar”, 
     "categories": { 
     "category1": "true" 
     } 
     } 
    } 

Edit: Vielleicht smth wie diese

"categories": { 
    "category1": { 
    "id": "1", 
    "name": "computers", 
    "posts": { 
     "post1": true 
    } 
    }, 
    "category2": { 
    "id": "2", 
    "name": "Furniture" 
    }, 
    "category3": { 
    "id": "3", 
    "names": "Books" 
    }, 
} 
"users": { 
    "userid1": { 
    "email": "[email protected]" , 
    "posts": { 
     "post1": "true" 
    } 
    } 
}, 

"posts": { 
    "post1": { 
     "id": "1", 
     "title": "Selling my guitar", 
     "users": { 
     "user1" : "true" 
     }, 
     "categories": { 
     "category1": "true" 
     } 
     } 
    } 

Also von dem, was ich gelernt, ich kenne Beiträge eine separate Einheit sein sollte, aber dann bin ich nicht sicher, wie man sie verbindet.

Lassen Sie mich wissen, wie ich diese Datenbank verbessern kann.

Antwort

2

Das Reduzieren von Daten bedeutet, dass Sie keine Entitätstypen mischen. Wenn Sie sich Ihren aktuellen Knoten /users ansehen, erhalten Sie nun Informationen über den Benutzer dort (ihre E-Mail-Adresse) und eine Liste der Knoten. Dies sind zwei verschiedene Entitätstypen und sollten normalerweise in separaten Top-Level-Listen sein.

"categories": { 
    "category1": { 
    "id": "1", 
    "name": "computers" 
    }, 
    "category2": { 
    "id": "2", 
    "name": "Furniture" 
    }, 
    "category3: { 
    "id": "3", 
    "names": "Books" 
    }, 
} 
"users":{ 
    "userid1": { 
    "email": "[email protected]"  
    } 
}, 
"posts": { 
    "post1": { 
     "id": "1" 
     "title": "Selling my guitar”, 
     "categories": { 
     "category1": "true" 
     } 
     } 
    } 
+0

Was ist mit der Verbindung von Benutzern mit Posts. Benutzer werden diese Beiträge erstellen. Auf meiner App sollte ich Beiträge pro Benutzer und Beiträge pro Kategorie abfragen können. –

+0

Ich habe meinen Beitrag bearbeitet. Nach deiner Antwort und den Bedürfnissen meiner App sollte das so aussehen. Ich sollte in der Lage sein, Beiträge, Beiträge nach Kategorie und Beiträge nach Benutzer abzufragen. Vielen Dank für die Eingabe –

+0

Es hängt alles von den Anwendungsfällen Ihrer App ab, und ist sogar dann ziemlich breit. Ich empfehle, [NoSQL-Datenmodellierung] (https://highlyscalable.wordpress.com/2012/03/01/nosql-data-modeling-techniques/) zu lesen und (wenn Sie einen SQL-Hintergrund haben) zu beobachten [Firebase für SQL-Entwickler] (https://www.youtube.com/playlist?list=PLl-K7zZEsYLlP-k-RKFa7RyNPa9_wCH2s). –

Verwandte Themen