2016-11-21 3 views
0

迅速私がレポートにobjectIDに等しいすべてのItemsを照会する2クラス解析リレーショナル型クエリ - 3

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

を持っています。ユーザーはレポートを作成し、レポートにアイテムを追加します。これらのアイテムはアイテムテーブルにあります。

私はhttps://parseplatform.github.io/docs/ios/guide/#relationsを見ましたが、swift3は表示されません。

私はほとんど成功していないいくつかのことを試しました。私はこの下にあるスニペットを見つけましたが、それを自分のクラスにどのように適用するかはわかりません。

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

誰かが私を正しい方向に向けるのが大好きです!ありがとう

以下もこのコードを試してみてください!

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

答えて

1

これで、queryqueryになるのを防ぐためにテーブルを少し変更していました。私が代わりにReports表のItemsテーブルにrelation Type

を追加しました

は、それから私はこのようなことreport ObjectIdのもと、すべてのItemsを取得するために管理:

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

この後、働きました。 reportRelationがリレーショナルタイプの列であることに注意してください。 ありがとう

0

あなたはおよそ1対多の関係を考えているときやポインタや配列を実装するかどうか、考慮すべきいくつかの要因があります。まず、この関係にはいくつのオブジェクトが関係していますか?関係の「多くの」側に非常に大きな数(100以上)のオブジェクトが含まれる場合は、ポインタを使用する必要があります。オブジェクトの数が少ない場合(100未満)、配列がより便利になる場合があります。特に、通常、すべての関連オブジェクトを取得する必要がある場合(「1対多リレーションシップ」の「many」)親オブジェクトと同時に。 http://parseplatform.github.io/docs/ios/guide/#relations

あなたは、多くの関係に1を使用している場合は、ポインタや配列を使用します。例と詳細については、ガイドを参照してください。

+0

コメントありがとうございます。しかし、多くのレポートで同じ項目を持つことができます。だからこれは多対多の関係のほうがよいでしょう。 – Cliffordwh