【问题标题】:Optimizing Parse to query for new objects优化 Parse 以查询新对象
【发布时间】:2015-10-02 07:03:38
【问题描述】:

我正在使用 Parse 作为我正在开发的应用程序的后端。我想知道是否有一个最佳算法来只查询“看不见的”新对象。

我打算做的是将用户添加到查看对象的关系中,然后查询所有对象以检查用户是否缺席。这似乎是 O(n* all users who have seen an 'n') 复杂度有点过分了。

另一种方法是将对象添加到用户的键'seen',然后查询用户未见过的所有对象。

也许一种更有效的方法可能是(假设我按时间顺序查看这些对象)是标记我看到的第一个和最后一个对象,并且使用 createdAt 键仅显示这些点之前或之后的对象。然后我想从这些点向外显示新对象,而不必分成​​多个查询。

理想情况下,我希望对对象进行随机播放,但我也希望使该算法尽可能高效。

【问题讨论】:

  • 试试日期方法,看看效果如何

标签: ios objective-c algorithm parse-platform pfquery


【解决方案1】:

创建一个名为 View 的类。每个视图都包含来自可查看对象的唯一标识符(不能成为对象 ID)和指向查看该对象的用户的指针。

您的查询应该是:

//(Simple equalTo query)
Query1 = All View Objects where User pointer = User

//(whereKey:that-unique-id-column doesNotMatchKey:that-unique-id-column inQuery:Query1)
Query2 = All viewable Objects where not included in pointers in Query1

【讨论】:

  • 我对这种方法有几个问题。您是说在 View 类中为每个查看对象的用户创建一个指针,还是为每个包含所有用户指针的 View 创建一个关系? (有多少用户可以在不达到 Parse.com 对 PFObject 的 128 KB 限制的情况下使用它?)对于 View 类,为什么我不能使用 viewableObject 的 objectId?然后执行all viewable objects whereKey:objectId doesNotMatchKey:viewObjectId inQuery: Query1,其中每行的viewObjectIdviewableObject.objectId
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-12-30
  • 2021-07-10
  • 2015-11-08
  • 2022-01-24
  • 2011-06-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多