在 iOS Parse App 中节省流量的最佳方式

Best way to save traffic in iOS Parse App

我在使用 Parse 的应用程序中遇到逻辑问题,关于选择哪条路径来节省流量,如果有人已经遇到过类似的问题,我将非常感谢您的帮助。此外,您最终可以帮助其他面临同样问题的开发人员

我有一个社交应用程序,其中有一个包含 objects 的提要,用户可以将这些 objects

添加为书签("favorite")

我研究了 Parse 文档并得出结论,在指针、关系和数组中,存储收藏夹的最佳方式是 objectId 的数组存储在用户的 class 中。每次用户将 object 添加为书签时,此 object 的 ObjectID 将存储在属于该用户的 objectID 数组中。选择的理由是:

  1. 创建书签的视图并将它们显示给用户很容易,因为我只需要搜索用户的 ObjectID 数组并找到 class 中存在的那些 objects

  2. 仅保存 objectID 而不是整个 object,我将节省流量并保持应用和流量清洁

但是我的逻辑问题如下。如果 user1 创建了一个 object,并且 user2 将其添加为书签,然后 user1 决定删除 object,我将不得不搜索这个已删除 object 的 objectID每个用户的每个收藏数组!

所以我的问题是,对于我的应用程序的流量来说,什么会更便宜?当用户将其加入书签时存储整个 object,当用户删除 object 时自动删除?或者只存储ObjectID,当这个object被删除时,对每个用户的每个数组进行搜索?

您可以为您的 Feed object 创建 Parse class。之后创建一个数组列来存储 object 将您的提要项目添加到收藏夹的用户的 ID。当你想找到所有 objects 特定用户的书签做这样的事情

PFQuery *query = [PFQuery queryWithClassName:@"feedObjects"];
[query whereKey:@"favoritesArray" equalTo:@"YOUR USER OBJECT ID"];
[query findObjectsInBackground];

要删除 object 只需执行

PFObject *feedItem = [PFQuery getObjectOfClass:@"feedObjects" objectId:@"ITEM TO REMOVE OBJECTID"];
[feedItem deleteInBackground];

希望对您有所帮助:)