iOS 上的解析平台:大型多对多的关系、联接或数组?

Parse Platform on iOS: Relations, Joins, or Arrays for Large Many-to-Many?

在 iOS 上 Swift 的 Parse.com API 参考中,很清楚何时使用不同类型的一对多关系,基于在多边的预期大小上。

但我发现当双方都可能非常大时,我不太清楚使用哪种多对多关系。

在我的例子中,我有一个 Charity 对象,我的 Users 可以为它做出小的贡献(通常是一美元)——所以可以想象每个 User 可以做出成千上万的贡献这些贡献,每个 Charity 可能有成千上万的 Users 贡献。

为这种事情列出的多对多选项是解析关系、连接表和数组,文档对此进行了解释:

在没有任何其他信息的情况下,看起来我应该使用 Join Tables,但这只是因为文档并不暗示我 不应该,而不是为了文档说我 应该 .

的原因

这似乎是一个站不住脚的理由。

如果有人能提供任何指导,我将不胜感激。

在幕后,当您使用 Relation 时,Parse Server 会自动为您创建一个联合 Table 并提供一些 API 以便轻松管理和获取其数据。所以,从性能上来说,应该是很相近的。

Relation 的缺点是无法向其创建的 "Joint Table" 添加新字段。因此,例如,如果您需要存储每个用户喜欢的慈善机构,那么 User 和 Charity 之间的关系将是一个很好的选择,因为您只需要存储该关系存在,而不需要存储任何额外的信息。

另一方面,如果您需要存储每个用户对每个慈善机构的捐赠,我会创建一个名为 Donation 或 UserCharity 的联合 Table,并带有指向用户的指针 class,指向慈善机构 class 的指针,以及捐赠的价值。在这种情况下,Relation 不适合,因为您需要存储捐赠值。