繁体   English   中英

我可以在Realm.IO中使用孩子的主键作为父母的主键吗?

[英]Can I use a child's primary key as the parent's primary key in Realm.IO?

例如:

class User: Object {
  dynamic var name: String = "Thor"
  dynamic var profile: Profile?
}

class Profile: Object {
  dynamic var id: Int = 0
  override static func primaryKey() -> String {
    return "id"
  }
}

因此,当配置文件是使用配置文件的primaryKey进行的更新时,我希望Realm不要创建新用户。

在代码中

let json = JSON(value)
let realm = try! Realm()
try! realm.write {
  let user = User(json: json)
  realm.add(user, update: true)
}

由于User没有primaryKey ,因此每次都会创建一个新用户。 但是,由于Profile 确实具有primaryKey ,因此只能创建一个配置文件。 所有用户都指向同一个人资料。 我希望User使用Profile上的主键,并且仅在创建新的Profile时创建一个新User

有任何想法吗?

谢谢。

您要提供的是给User类一个身份的概念,在Realm中该身份主键表示。

建议您使用相同的主键来代表User及其关联的Profile 或者,如果这些模型只能以一对一的关系一起存在,为什么不将它们组合在一起呢?

class User: Object {
  dynamic var id: Int = 0
  dynamic var name: String = "Thor"

  override static func primaryKey() -> String {
    return "id"
  }
}

我假设您的Profile模型中有更多属性。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM