核心数据 - 一对多的关系 - 数据模型

时间:2014-03-27 10:38:27

标签: ios core-data relational-database entity-relationship iphonecoredatarecipes

enter image description here

这是我的核心数据结构。我有三个实体Room KeyKeyRoomMap。现在我在RoomKey中有两个属性。我希望它们的ID属性应与第三个表KeyRoomMap相关联,并且SuggestedTestPlan中还有一个元素KeyRoomMap

我的问题是

  1. 这是像SQL表这样的结构。但我觉得这是 核心数据中的错误结构。我想加入keyIDroomID 与KeyRoomMap有一些关系。我怎么能这样做呢 添加keyID和roomID,应该自动添加 KeyRoomMap?
  2. 每间客房都有更多钥匙。所以key1,key2是关联的 对于room1,key3与room2和key4,key5,key6是room3 我怎么能在这里建立这样的关系?
  3. -----------------------编辑并添加

    实际上,如果key1和key2与Room1相关联,我的混淆也会开始。我可以加入他们与那里的一对多关系。但keyroomMap实体的定义是为了说key1和key2与Room1相关联。如果我不制作这个表,那么只能基于这么多键的关系,我应该怎么说?

1 个答案:

答案 0 :(得分:1)

事实上,您似乎正在计划它像SQL表。

从您的解释中听起来像是:

  • 房间可以有很多钥匙

  • 钥匙可以解锁一个房间

因此我会说你房间实体的关系是'键'这是一种多对多的关系。请记住,您需要设置反向关系的核心数据,因此Key实体上的对应关系将是空间,并且将成为一对一的关系。

我已将数据模型图包含在下面的图像中。

Room - Key Model

我不确定您对KeyRoomMap的目的是什么?那个建议的TestPlan属性可能存在于Key或Room上吗?似乎KeyRoomMap实体有两个关系,因为KeyRoomMap存在,它必须具有相应的Room和Key,它们都是一对一的关系。我已经包含了一个可能的图表,但没有更多信息,我无法确定。

Room - Key - RoomKeyMap Model

编辑:否则建议TestPlan是一个可以根据其他实体派生或计算的属性?即。提取属性https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/CoreData/Articles/cdRelationships.html#//apple_ref/doc/uid/TP40001857-SW7