我在 Core Data 中有以下建模问题。学生可以上课。
类(class)有以下字段:
title date grade type
类(class)可以是以下三种类型之一:
类(class)类型1:
subtype11 subtype12 subtype13
类(class)类型2:
subtype21 subtype22 subtype23 subtype24
类(class)类型3:
subtype31 subtype32 subtype33 subtype34 subtype35
如何将 lesson.type
设置为这三种类型的类(class)中的任何一种?有没有更好的方法来模拟这种情况?
最佳答案
模型的细节取决于您建模的数据的细节。
如果类型只是没有逻辑或行为的标记,那么最简单的模型是:
Student{
lessons<-->>Lesson.student
}
Lesson{
title:string
date:date
grade:number
type:string
subtype:string
student<<-->Student.lessons
}
如果类(class)具有与每种类型关联的某种行为,那么您可以为每种类(class)创建子实体。
Lesson{
title:string
date:date
grade:number
student<<-->Student.lessons
}
TypeOne:Lesson{
}
TypeOneSubOne:TypeOne{
}
// ...etc
由于所有 Lesson 子实体都继承自 Lesson,因此它们也可以继承关系。所有不同的子实体都可以在 Student.lesson
关系中。
如果类(class)类型具有与其关联的行为,您也可以将它们分解为单独的实体。
Lesson{
title:string
date:date
grade:number
type<<-->Type.lessons
student<<-->Student.lessons
}
Type{
lessons<-->>Lesson.type
}
TypeOne:Type{
}
TypeOneSubOne:TypeOne{
}
核心数据模型旨在模拟真实世界的对象、事件或条件以及它们之间的关系。设计模型的第一步是了解现实世界中的那些事物以及它们之间的关系。
关于ios - 寻求核心数据模型设计建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6022213/