ios - CoreData - 一对多关系 - 数据模型

标签 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 ,它应该会自动添加 key 室 map ?
  2. 每个房间都有更多的 key 。所以 key1 , key2 是关联的 与room1,key3与room2和key4,key5,key6与room3 .我怎样才能在这里建立这样的关系?

--------------------编辑和添加

实际上,我的困惑还始于 key1 和 key2 是否与 Room1 相关联。我可以加入他们那里的一对多关系。但是 keyroomMap 实体被定义为表示 key1 和 key2 与 Room1 相关联。如果我不做这张表,那么只是根据这么多键的关系,我该怎么说呢??

最佳答案

确实看起来您正在像 SQL 表一样规划它。

从你的解释看来:

  • 一个房间可以有很多 key

  • 一把 key 可以打开一个房间

因此我会说您的 Room 实体上的关系是“键”,这是一对多关系。请记住,在核心数据中,您还需要设置反向关系,以便 Key 实体上的对应关系将是 room 并且是一对一的关系。

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

Room - Key Model

我不太确定您使用 KeyRoomMap 的目的是什么?那个 suggestedTestPlan 属性可以存在于 Key 或 Room 上吗?似乎 KeyRoomMap 实体有两个关系,因为要使 KeyRoomMap 存在,它必须有相应的 Room 和 Key,这两者都是一对一的关系。我已经包括了一个可能的图表,但没有更多信息我不能确定。

Room - Key - RoomKeyMap Model

编辑:否则 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/

相关文章:

ios - 快速查找未完成执行警告的原因

ios - Swift (iOS) 插件 - 插件错误中未定义方法 - Cordova

ios - UICollectionView 布局不一致,UICollectionViewFlowLayout

ios - 使用本地时区推送通知

objective-c - 如何获取保存到 Core Data 托管对象上下文的对象的 ID?

ios - NSFetchedResultsController 部分按类排序

php - Laravel - 与多个 ID 的关系

objective-c - 核心数据删除不成功*容易修复吗?*

MySQL:我应该把外键放在哪里?

php - MySQL 社区服务器 - 它到底是什么?