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

问题描述 投票:0回答:1

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

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

[在我的情况下,我有一个Charity对象,我的Users可以做出很小的贡献(通常是一美元),因此每个User可以做出成千上万个这样的贡献,而每个Charity可以做出有成千上万的Users对此做出贡献。

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

  • 当关系可靠地包含100个以下引用时,应使用数组,这是我应该使用数组的非常清楚和有用的指导。
  • 例如,文档解析关系可用于将Books与多个AuthorsAuthors与多个Books连接-在这种情况下,给定的Book不可能超过100 Authors,并且很少有Author的个数超过100 Books,因此目前尚不清楚[时是否合适(如我的情况)。
  • 文档说,当每个关系都应附加额外的元数据时,应使用Join Tables,因此,一方面,我目前对此没有明确的需求,另一方面,文档似乎甚至没有
  • mention
  • 关于多对多关系的每一边有多大或有多重要的任何事情。
在没有其他信息的情况下,看来我应该使用联接表,但这仅是因为文档并不暗示我

不应该

,而并非出于文档说我应该似乎是一个脆弱的理由。

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

swift join parse-platform parserelation
1个回答
2
投票
在幕后,当您使用Relation时,Parse Server会自动为您创建一个联合表并提供一些API,以轻松管理和获取其数据。因此,就性能而言,它应该非常相似。

关系的缺点是无法向它创建的此“联合表”添加新字段。因此,例如,如果您需要存储每个用户喜欢的慈善机构,则User和Charity之间的关系将非常适合,因为您只需要存储该关系存在而无需存储任何额外的关系信息。

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

© www.soinside.com 2019 - 2024. All rights reserved.