2014-03-03 51 views
0

我有简单的数据模式。模型有3个表格:老师,班级,teacher_class教师可以教更多可以有更多的教师。它的经典M:N的问题。所以,我做了第三张表class_teacher,它代表夫妇老师级。第三类有2个外键(FK)老师和班级。数据模型是在这里:CoreData - Xcode 5 - M:N关系

https://www.dropbox.com/s/41jr1h713scgxyj/Screenshot%202014-03-03%2021.50.21.png

请,我怎么能代表CoreData这种模式。在CoreData中没有任何FK或PK,那么,我如何建立关系模型?只有两张桌子,这些桌子有很多很多的关系?有可能的?谢谢你的建议。

回答

2

是的,创建2个实体并创建一个双向多对多关系(在每个方向创建一个关系并将它们设置为彼此相反)。通过这种方式,教师可以与任何数量的课程有关系,反之亦然。你不需要第三个实体。

如果您需要,可以在核心数据中添加索引,通过在Xcode中勾选indexed选项将其添加到您选择的属性。

+0

Wain,请。当我有两个表时:1:1例如表格num.1:“Teacher”,表格num.2:“地址”。我必须在表格老师中插入一个属性地址(外键)或者它不是必需的。而当我有关系M:N例如教师和班级我怎么能检测混凝土的夫妇,当我在例如任何表不FKS:布朗先生教4.A和布朗先生教5.A和女士史密斯也教了4.A。什么会在表格中看起来如此的记录?对不起,但我已经注意到了数据模型中的逻辑,这里有所不同。谢谢。 – krata

+0

你需要停下来思考表和外键和开始思考对象和关系(套指向其他对象的)。 – Wain

3

没有关注你的链接。另外,当问一个问题时,你应该是明确的,而不是假设读者知道FKPK是什么意思。

至于你的模型,你可以很容易地做到这一点与多方关系。

在模型GUI中,您添加了一个与teacher的关系,该关系引用了class,并且您将关系的每一侧设置为“多对多”。因此,teacher的每个实例可以具有多个关系,并且每个class实例可以具有多个teacher关系。

+0

FK =外键,PK =主键 – krata

+0

我相信你的意思是“设置的关系类型是‘许多’的每一面。”无限制不是你在模型中定义的东西。它默认为“无界”,这很可能是OP正在寻找的东西。 –

+0

@ MarcusS.Zarra谢谢。我已经在代码中构建了很多模型,并且我已经调用将'minCount'和'maxCount'设置为无限制。可能应该更仔细一点。 –