2014-10-06 27 views
3

据我所知,可能使用指针数组的唯一原因是保持排序,因为PFRelation实例不支持排序。否则,它们表现出相同的行为,尽管PFRelation具有更高的可伸缩性,并且还有一个漂亮的内置“查询”方法来将查询仅限制在PFRelation实例中的对象,这有时候非常有用。我应该使用指针数组还是PFRelation? (parse.com)

PFRelation *relation = ... 
PFQuery *query = [relation query]; 

上下文:我建立,其中每个PFUser实例有许多TennisGame实例的应用程序(可能是一个大的数字),并且TennisGame实例有许多PFUser实例(2或4,这取决于是否这是一场单打比赛或双打比赛)。

问题:在parse.com上组织我的数据的最佳方式是什么?我正在考虑在我的PFUser类(对TennisGame实例)中使用PFRelation,以及在我的TennisGame类(对PFUser实例)中的数组或2或4个指针。但是我需要两个吗?如果不是,哪个最好?

回答

9

问题是关于你如何访问你的数据。对于您的情况,您可以考虑以下问题:

  • 您是否需要在获得用户时包含用户的TennisGames?如果是,则阵列在查询上支持include。你不能与include关系,你需要做一个更多的查询来访问用户的TennisGames。
  • 用户最多可以有多少个TennisGames?如果它可能超过100(建议由Parse限制),最好是与关系一起去。因为数组不能伸缩到较大的关系。
  • 正如你指出的那样,这个顺序对你来说很重要吗?如果是,阵列支持订单。
  • 又如您所说,如果您对数据子集感兴趣,则关系可以限制查询,而数组不是。

我建议你看看this video关于来自Parse developer days的Parse关系。

此外,你不需要保持双方的关系。这会使创建和更新它们变得更加复杂。

+0

谢谢knshn。我有一个观点,我需要加载用户的游戏,按日期排序。因此,PFRelation似乎是实现这一目标的最简单方法。但另一种方法是使用'whereKey:@“players_array”equalTo:[PFUser currentUser]'查询整个TennisGame类,并且我不确定当可能有成千上万个TennisGame实例时效率太低 – 2014-10-07 14:12:24

+1

如果你发现此页面,强烈建议您查看视频,非常全面 – ObjectiveTruth 2015-07-06 16:06:38

相关问题