基于其他实体属性的属性核心数据模型映射

时间:2012-11-26 13:34:34

标签: iphone core-data core-data-migration

我有一个数据模型,其中包含两个具有一对多关系的实体

Person {
    name:string, 
    type:number, 
    files<-->>File
}

File {
    reference:string, 
    person<<-->Person
}

我更新了数据模型,从Person中删除了type属性,但File的引用属性取决于Person的类型:如果type为0,那么如果type为1,则引用必须为“A” ,那么引用必须是“B”。

我找不到可以执行此映射的解决方案。有什么想法吗?

编辑:

我通过创建两个实体映射找到了解决方案,使用过滤器谓词来区分类型0和1.对于使用Person.type == 0的实体映射,我设置了硬编码属性映射“A”,和类似对于type == 1&gt;

1 个答案:

答案 0 :(得分:0)

如果你有两种与文件的关系而没有类型属性来跟踪它,你或许应该考虑只有两种关系。

Person {
   name
   filesA <--->> File
   filesB <--->> File
}

File {
   reference
   personsTypeA <<---> Person
   personsTypeB <<---> Person
}

坦率地说,我认为带有type属性的设计看起来更优雅。它非常灵活,可以在将来轻松扩展模型。