我是Realm
数据库的新手,这太棒了,我对关系这件事几乎没有怀疑。与其问每个疑问,我更喜欢从一个例子中理解它。下面给出了从领域javascript
文档中复制的示例schema
。
const CarSchema = {
name: 'Car',
properties: {
make: 'string',
model: 'string',
miles: {type: 'int', default: 0},
}
};
const PersonSchema = {
name: 'Person',
properties: {
name: 'string',
birthday: 'date',
cars: 'Car[]'
picture: 'data?', // optional property
}
};
现在的问题...
1( 如何从上述给定模式中获取拥有特定汽车的人员列表?
2(我应该像owner: 'Person'
一样Car
模式property
吗? 还是有任何反向关系的事情。(我不知道完美的术语,我是新手:/(
注意:可以在评论中提出更多问题。
是的,需要定义反关系。为此,您应该创建这样的架构,
const CarSchema = {
name: 'Car',
properties: {
make: 'string',
model: 'string',
miles: {type: 'int', default: 0},
owner: 'Person'
}
};
const PersonSchema = {
name: 'Person',
properties: {
name: 'string',
birthday: 'date',
cars: {type: 'linkingObjects', objectType: 'Car', property: 'owner'}
picture: 'data?'
}
};
此处,Person 有汽车,其中 Car 对象中的owner
属性映射到此人员。car.owner
给你Person对象,person.cars
给你这个人拥有的所有汽车。