Realm Swift反对关系多对多

时间:2017-04-13 13:21:51

标签: swift realm

我目前正在尝试找出构建我的领域对象的最佳方法,以便于检索。

我有2个对象tagsobject有多个tags,每个对象可能包含多个object。同样地,每个object可能有多个tag与之关联

理想情况下,选择单个代码应检索至少包含一个代码的所有object(但显然可能有多个代码)

我的模型会被指定为

class Tag: Object {
    let objects = List<Object>()
}

class Object {
    let tags = List<Tag>()
}

我认为我不需要在这里使用反向关系,还是应该?选择一个类别I应该能够只检索所有对象引用的列表,但是在这里维护和更新对象的引用可能很困难?即用户选择标签'A'然后更新第一个对象以包括标签'B'我需要更新标签A列表中的对象,然后将新项目添加到标签'B'的列表中并最终更新实际的Object本身在其标签列表中包含Tag'B'。

为了清楚起见,对象只会显示并允许编辑它的Tag个对象。但Tag对象本身需要知道Object适用于它的内容。

然而,理想情况下我觉得我必须做多次更新才能最大限度地减少这种努力。任何人都可以推荐更好的方法吗?或者由于Realm的限制,没有办法解决这个问题吗?

1 个答案:

答案 0 :(得分:3)

这正是LinkingObjects的用途。将objects中的Tag属性更改为let objects = LinkingObjects(fromType: Object.self, property: "tags")会使标记添加到对象时自动更新。