How does Parse.com create a bidirectional relationship in the iOS client?

喜你入骨 提交于 2019-12-08 12:50:13

问题


I'm following this tutorial: https://parse.com/tutorials/one-to-many-relationships

I see a Post is created and the current user attached. But I don't see the opposite, I don't see how the Post is attached to the user. And at the end it says: "The application should now be able to create Post objects, set a one-to-many relationship between Posts and PFUsers, as well as use a query to obtain all Posts associated with a given user." How is that possible? If I use that code, how can I retrieve all Posts that belong to a User if I never attached the Post to its User? Thanks in advance!


回答1:


Parse is not a pure relational database, this is not the natural way to do it.

The usual is define a pointer type in your child table, pointing out to the father table.

    // Create a new Post object and create relationship with PFUser
PFObject *newPost = [PFObject objectWithClassName:@"Post"];
[newPost setObject:[textView text] forKey:@"textContent"];
[newPost setObject:[PFUser currentUser] forKey:@"author"]; // One-to-Many relationship created here!

// Set ACL permissions for added security
PFACL *postACL = [PFACL ACLWithUser:[PFUser currentUser]];
[postACL setPublicReadAccess:YES];
[newPost setACL:postACL];

// Save new Post object in Parse
[newPost saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error) {
    if (!error) {
        [self dismissViewControllerAnimated:YES completion:nil]; // Dismiss the viewController upon success
    }
}];

There is not this natural way of SQL access through subselects or Join.

But if you need to create a bidirectional relationship, you can do it by doing this.

https://parse.com/questions/bidirectional-relationship-one-to-many




回答2:


you can set the user as the post_owner of the post and query for posts that has the current user as their owner



来源:https://stackoverflow.com/questions/23740011/how-does-parse-com-create-a-bidirectional-relationship-in-the-ios-client

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!