核心数据 - 关系实体

时间:2014-04-07 22:34:11

标签: objective-c core-data entity-relationship relationship

我有三个实体 - 老师,班级,科目。我有一些科目,例如在学校教授它只是:数学,生物学,英语。这门课程可以在许多课程上教授 - 7.A,4.C,3.D数学中的英语3.D,2.D,1.D等。教师在许多班级教授,也可以教授很多科目例如2.D,3.D的数学和4.C,3.A的生物学。我需要WHO,WHERE和WHAT教授的信息,所以我必须回答这个问题,WHO在3.D(WHERE)教授数学(WHAT)。而且我不知道如何为Core数据模型建模。你能给我一个建议吗?我曾经和ERD合作,我知道它有点不同。如果我使用例如mySQL,我将使用一个额外的关系实体,它将有三列:教师,主题,类,并且与表格有关系N:1:教师,主题,类。当我使用Core Data时,它是必要的吗?怎么解决?

2 个答案:

答案 0 :(得分:0)

你会在Core Data中做同样的事情。您将创建一个与教师,班级和主题有关系的联接实体。该实体可能有额外的时间,级别等信息。

答案 1 :(得分:0)

Marcus不太正确.Core Data为您“创建”联接实体。您只需指定多对多关系,该关系在每个对象上作为NSSet返回。如果您查看SQLite内部,您将看到创建并维护关系的表。如果创建一对多关系,则不需要额外的表。 在你的例子中,我不确定你甚至需要额外的表格。我认为class->老师是一对一的,class-> subject是一对一的,而teacher-> subject是一个有效地进行JOIN的查询。