想想Slack,那里有频道,每个频道都有帖子。假设我有一个频道类和一个帖子类,其中频道有一系列帖子。现在我给每个帖子一个字符串变量"channel",以便在查询数据库时我可以挑选出特定频道的帖子。这意味着每次用户进入频道时,我都必须查询现有的每个帖子,以查看它是否适用于该特定频道。有没有更有效的方法可以做到这一点?
虽然使用某种这样的外键在关系数据库中可能有效,但在 Realm 中链接对象的方法要简单得多。
就像@bdash提到的,Realm 有一个对多对象关系特性,其中父对象可以存储对多个子对象的引用。
class Post: Object {
dynamic var message = ""
let channel = LinkingObjects(fromType: Channel.self, property: "posts").first?
}
class Channel: Object {
dynamic var name = ""
let posts = List<Post>()
}
您还可以使用 LinkingObjects
对象让帖子知道它们属于哪个频道。
有关更多信息,请查看 Realm 文档的对多关系部分。