1

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

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

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

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

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

编辑 :

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

4

1 回答 1

0

如果您与文件有两种关系并且没有类型属性来跟踪它,那么您或许应该考虑简单地拥有两种关系。

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

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

坦率地说,我认为带有 type 属性的设计看起来要优雅得多。它很灵活,可以在未来轻松扩展模型。

于 2012-11-26T15:15:40.173 回答