如何将关系数据(例如 RealmList<Object>)预填充到 Realm 中
How to pre-populate relational data (e.g. RealmList<Object>) into Realm
是否可以将关系数据导入 Realm?我的 ObjectA 数据模型使用 List 具有一对多关系。
我使用 Realm Studio 从 CSV 导入来预填充数据。我的大部分数据模型都是由字符串和整数组成的。但我不确定如何在 CSV 中表示 List<> 数据类型。
作为解决方法,我将让我的应用程序在运行时使用对象填充 Realm。但是这种方法使用一次性代码,这让我觉得这是基本功能。必须有更好的方法!
我的数据模型:
class Person: Object {
@objc dynamic var title: String = ""
@objc dynamic var id: Int = 0
}
class Dog: Object {
@objc dynamic var id: Int = 0
@objc dynamic var title: String = ""
var owner = List<Person>()
}
如果您想读取“关系数据”,您可以编写一个应用程序来读取该数据,填充您的领域对象并将其保存到领域。
在平面文件中表示关系数据通常有一些关联该数据的公共键。比如人和狗。人员档案可能如下所示;人员 ID、姓名和最喜欢的食物
1234,jay,pizza
5678,cindy,steak
然后狗文件看起来像这样,包含狗 ID、狗名,然后是人员(所有者)ID
1111,rover,1234
2222,spot,1234
3333,scraps,5678
在上面的例子中,jay 拥有 rover 和 spot,cindy 拥有 scraps。
领域 PersonClass 对象将是
class PersonClass: Object {
@objc dynamic var person_id = ""
@objc dynamic var person_name = ""
@objc dynamic var fav_food = ""
let dogList = List<DogClass>()
}
然后是狗
class DogClass: Object {
@objc dynamic var dog_id = ""
@objc dynamic var dog_name = ""
@objc dynamic var person_id = ""
}
这个过程是读入人物(创建人物对象),读入狗,遍历每只狗并将其添加到那个人的 dogList - 这个人可以通过其 person_id .
理想情况下,最好将 primary_keys 包含在此结构中。
同样,您可以将所有的狗和人读入 Realm Studio,并将这些狗也添加到他们各自的人的 dogList 中。
您可以 command-click 文件名将多个文件导入 Realm Studio
是否可以将关系数据导入 Realm?我的 ObjectA 数据模型使用 List 具有一对多关系。
我使用 Realm Studio 从 CSV 导入来预填充数据。我的大部分数据模型都是由字符串和整数组成的。但我不确定如何在 CSV 中表示 List<> 数据类型。
作为解决方法,我将让我的应用程序在运行时使用对象填充 Realm。但是这种方法使用一次性代码,这让我觉得这是基本功能。必须有更好的方法!
我的数据模型:
class Person: Object {
@objc dynamic var title: String = ""
@objc dynamic var id: Int = 0
}
class Dog: Object {
@objc dynamic var id: Int = 0
@objc dynamic var title: String = ""
var owner = List<Person>()
}
如果您想读取“关系数据”,您可以编写一个应用程序来读取该数据,填充您的领域对象并将其保存到领域。
在平面文件中表示关系数据通常有一些关联该数据的公共键。比如人和狗。人员档案可能如下所示;人员 ID、姓名和最喜欢的食物
1234,jay,pizza
5678,cindy,steak
然后狗文件看起来像这样,包含狗 ID、狗名,然后是人员(所有者)ID
1111,rover,1234
2222,spot,1234
3333,scraps,5678
在上面的例子中,jay 拥有 rover 和 spot,cindy 拥有 scraps。
领域 PersonClass 对象将是
class PersonClass: Object {
@objc dynamic var person_id = ""
@objc dynamic var person_name = ""
@objc dynamic var fav_food = ""
let dogList = List<DogClass>()
}
然后是狗
class DogClass: Object {
@objc dynamic var dog_id = ""
@objc dynamic var dog_name = ""
@objc dynamic var person_id = ""
}
这个过程是读入人物(创建人物对象),读入狗,遍历每只狗并将其添加到那个人的 dogList - 这个人可以通过其 person_id .
理想情况下,最好将 primary_keys 包含在此结构中。
同样,您可以将所有的狗和人读入 Realm Studio,并将这些狗也添加到他们各自的人的 dogList 中。
您可以 command-click 文件名将多个文件导入 Realm Studio