我正在使用Parse作为我正在开发的应用程序的后端。我想知道是否有一个最佳算法来查询“看不见的”新对象。
我计划做的是将用户添加到被查看对象的关系,然后查询所有对象以检查用户是否缺席。这似乎是O(n *所有看到'n'的用户)的复杂性有点太多了。
另一种方法是将对象添加到用户的密钥“see”中,然后查询用户未看到的所有对象。
也许一种更有效的方法(假设我按时间顺序查看这些对象)是标记我看到的第一个和最后一个对象,并且只使用createdAt键在这些点之前或之后显示。然后我想从这些点向外显示新对象,而不必分成多个查询。
理想情况下,我想在对象中进行随机播放,但我也希望尽可能保持此算法的有效性。
答案 0 :(得分:0)
创建一个名为View的类。每个视图都包含一个来自可查看对象的唯一标识符(不能是OBJECTID)和一个指向查看该对象的用户的指针。
您的查询应该是:
//(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