2016-11-21 5 views
0

Ich habe 2 KlassenParse relationalen Typ Abfrage - swift 3

Reports - objectID, Title, Date & relationItem (Relation type column linked up to Items) 
Items - ObjectID, Title, Date etc 

Ich möchte Abfrage alle Items, die zu einem objectID in Berichten gleich sind. Benutzer erstellen Berichte und fügen ihnen Elemente hinzu. Diese Elemente befinden sich in der Tabelle "Elemente".

Ich habe mir die https://parseplatform.github.io/docs/ios/guide/#relations angeschaut, sehe aber nichts für swift3.

Ich habe ein paar Dinge mit wenig Erfolg ausprobiert. Dieses snipplet unten fand ich, aber nicht sicher, wie man es auf meine Klassen anwendet.

var relation = currentUser.relationForKey("product") 
relation.query()?.findObjectsInBackgroundWithBlock({ 

Würde jemanden lieben, um mich in die richtige Richtung zu leiten! Danke

Versucht, diesen Code auch unten!

var query = PFQuery(className:"Items") 
query.whereKey("relationItem ", equalTo: PFObject(withoutDataWithClassName:"Reports", objectId:"MZmMHtobwQ")) 

Antwort

1

Ok, also musste ich die Tabelle leicht ändern, um dies zu erreichen, um eine query innerhalb einer query zu verhindern.

Ich habe eine relation Type zum Items Tabelle anstelle der Reports Tabelle hinzugefügt

Dann gelang es mir, die ganze dieser report ObjectId wie diese Items basierend abzurufen:

let query = PFQuery(className:"Items") 
    query.whereKey("reportRelation", equalTo: PFObject(withoutDataWithClassName:"Reports", objectId:"3lWMYwWNEj")) 

arbeitete Diese dann. Beachten Sie, dass reportRelation die Spalte Relationaler Typ ist. Danke

0

Wenn Sie über eine Eins-zu-viele-Beziehungen denken und ob Pointers oder Arrays zu implementieren, gibt es mehrere Faktoren zu berücksichtigen. Erstens, wie viele Objekte sind in dieser Beziehung beteiligt? Wenn die "viele" Seite der Beziehung eine sehr große Anzahl (mehr als 100 oder so) von Objekten enthalten kann, dann müssen Sie Zeiger verwenden. Wenn die Anzahl der Objekte klein ist (weniger als 100 oder so), sind Arrays möglicherweise bequemer, besonders wenn Sie normalerweise alle zugehörigen Objekte (die "vielen" in der "Eins-zu-viele-Beziehung") benötigen. gleichzeitig mit dem übergeordneten Objekt.

http://parseplatform.github.io/docs/ios/guide/#relations

Wenn Sie mit einem zu vielen Beziehung arbeiten, Zeiger oder Array. In der Anleitung finden Sie Beispiele und weitere Erläuterungen.

+0

Danke für den Kommentar. Aber viele Berichte können dieselben Elemente enthalten. Das wäre also eher eine Viele-zu-Viele-Beziehung. – Cliffordwh