这是我的核心数据结构。我有三个实体 Room
Key
和 KeyRoomMap
。现在我在 Room
和 Key
中有两个属性。我希望它们的 ID
属性都应该与第三个表 KeyRoomMap
相关联,并且 中还有一个元素
。 SuggestedTestPlan
>KeyRoomMap
我的问题是
- 这是类似于此处的 SQL 表的结构。但我觉得这是
核心数据结构错误。我想加入
keyID
和roomID
与 KeyRoomMap 有某种关系。我该怎么做 添加 keyID 和 roomID ,它应该会自动添加 key 室 map ? - 每个房间都有更多的 key 。所以 key1 , key2 是关联的 与room1,key3与room2和key4,key5,key6与room3 .我怎样才能在这里建立这样的关系?
--------------------编辑和添加
实际上,我的困惑还始于 key1 和 key2 是否与 Room1 相关联。我可以加入他们那里的一对多关系。但是 keyroomMap 实体被定义为表示 key1 和 key2 与 Room1 相关联。如果我不做这张表,那么只是根据这么多键的关系,我该怎么说呢??
最佳答案
确实看起来您正在像 SQL 表一样规划它。
从你的解释看来:
- 一个房间可以有很多 key
和
- 一把 key 可以打开一个房间
因此我会说您的 Room 实体上的关系是“键”,这是一对多关系。请记住,在核心数据中,您还需要设置反向关系,以便 Key 实体上的对应关系将是 room 并且是一对一的关系。
我将数据模型图包含在下面的图片中。
我不太确定您使用 KeyRoomMap 的目的是什么?那个 suggestedTestPlan 属性可以存在于 Key 或 Room 上吗?似乎 KeyRoomMap 实体有两个关系,因为要使 KeyRoomMap 存在,它必须有相应的 Room 和 Key,这两者都是一对一的关系。我已经包括了一个可能的图表,但没有更多信息我不能确定。
编辑:否则 suggestedTestPlan 是一个可以基于其他实体派生或计算的属性吗? IE。获取的属性 https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/CoreData/Articles/cdRelationships.html#//apple_ref/doc/uid/TP40001857-SW7
关于ios - CoreData - 一对多关系 - 数据模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22685029/