首页 > 解决方案 > iOS 上的解析平台:大型多对多的关系、联接或数组?

问题描述

在 iOS 上 Swift 的 Parse.com API 参考中,根据多方的预期大小,何时使用不同类型的一对多关系非常清楚。

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

就我而言,我有一个可以做出小额(通常是一美元)贡献的Charity对象——所以可以想象每个人都可以做出数千个这样的贡献,每个人都可以有数千个贡献给它。UsersUserCharityUsers

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

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

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

我将非常感谢任何人可以提供的任何指导。

标签: swiftjoinparse-platformparse-ios-sdk

解决方案


在幕后,当您使用 Relation 时,Parse Server 会自动为您创建一个 Joint Table 并提供一些 API,以便轻松管理和获取其数据。因此,在性能方面,它应该非常相似。

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

另一方面,如果您需要存储每个用户对每个慈善机构所做的捐赠,我将创建一个名为 Donation 或 UserCharity 的联合表,其中包含指向 User 类的指针、指向 Charity 类的指针以及捐赠的价值。在这种情况下,Relation 不合适,因为您需要存储捐赠值。


推荐阅读