让我们从官方领域文档中获取示例。我们有汽车和人员。
const CarSchema = {
name: 'Car',
properties: {
id: {type: 'string'}, // UUID
make: {type: 'string'},
model: {type: 'string'}
}
};
const PersonSchema = {
name: 'Person',
properties: {
name: {type: 'string'},
car: '' // Something here to reference on already created car??
}
};
例如,我已经创建了一些带有UUID id-s的汽车。现在我想创建一个用户。在UI中,它看起来像表单,您可以在其中编写用户名并从下拉列表中选择一个已创建的车辆。
那么如何参考已经创建的汽车?它应该是带有id的字符串,或者是什么?
答案 0 :(得分:4)
链接是Realm中的一等公民,因此您不需要引入人工外键。您可以直接链接到另一个对象架构。在基于JavaScript的绑定中,您可以通过将相关对象架构的名称指定为type
来实现,如下所示。
const PersonSchema = {
name: 'Person',
properties: {
name: { type: 'string' },
car: { type: 'Car' } // or just: 'Car'
}
};
使用此模型,您可以创建Person
个已添加已存在的Car
对象,如下所示:
const realm = …
const volvo = realm.objects("Car").filtered("make = $0 AND model = $1", "Volvo", "XC60")[0];
const person = realm.create("Person", {
name: "Tim",
car: volvo,
});