2012-12-05 106 views
0

有两个实体在我的应用程序:类和学生,他们有很多一对多的关系,就像下面:enter image description here核心数据:许多到许多与关系状态

我的问题是,在我的应用程序,班上有两个学生的地位:通过和失败。我不知道如何为班级或学生建模。例如,我应该让另一个实体来表达学生的状态吗?或者只是添加一个状态属性到类实体?

回答

2

大概你不能给课堂添加一个属性,因为如果20个学生正在上同一个课程,那么他们之间只有一个属性?

您需要添加一个单独的实体,它与类和学生都有一对一的关系,并且包含状态。在相互作用中,学生和班级将与状态有多对多的关系。

编辑:我想一个替代解决方案将直接插入状态之间的现有关系。所以一个班级有一组状态,每个状态都有一个学生。

因此,从班级到身份,以及从状态到学生的多对一的关系将是一对多的。班级和学生之间没有明确的关系。

+0

核心数据系统会自动为我创建一个多对多的连接表(ClassToStudent Table),那么我可以为该表添加状态属性吗? – user1687717

+0

否; Core Data可能会或可能不会在内部创建的表是一种实现细节,并且是特定于后备存储的类型 - 无论是SQL,属性列表,XML还是其他类型。 Core Data扩展的每一项功能都足以在所有情况下都具有相同的功能。 – Tommy

+0

是的,可能像某种'ClassRegistration'MO,位于两者之间 - 放置'日期开始',等级等的好地方... – Hunter

0

我建议有第三个实体来表达特定班级学生的状态。例如一组“classStatuses”。既然你可能需要以后存储其他信息,例如等级,信用,帮助记录,等等等等

最终的方案会是这样的

类 - 学生在多对多的关系。

Student - ClassStatus in one to many。 (图片作为学生正在采取的相应状态的班级数组)

这样您就可以搜索班级中的学生,搜索学生正在参加的班级,检查班级的状态。