我正在尝试编写一个iOS应用程序,该应用程序可以跟踪您在健身房举重的重量,但是我正努力创建自己的Core Data模式。目前,我有一个“锻炼实体”,用于存储有关特定锻炼的信息(例如Bicep Curl),并且我有一个“锻炼实体”,仅具有名称和图像。锻炼实体与锻炼实体具有多对多关系。我需要结合的是“ session ”功能-用户完成锻炼并存储他/她在特定锻炼中举起的重量的能力。例如。我想说的是,我完成了“腿部日”锻炼,并在每次锻炼中都增加了这些权重。因此,目前我的核心数据看起来像这样。
schema
我将如何存储 session 数据?我认为该 class 与某项锻炼必须具有一对一的关系,但这不能让我为锻炼中的每项锻炼添加结果……我也认为我可能需要词典来存储每项锻炼的权重。
任何帮助将不胜感激,因为我以前从未真正了解过数据库。
谢谢
编辑:我改变了我的架构,看起来像这样
schema2
最佳答案
因此,对于您的schema2,在数据库设计中,具有形成“圆圈”的关系通常是不好的做法。同样,如果实体仅具有单个属性,则可以将其简化为其父实体的属性。
我可能会对您的设计有所不同。
您应该将运动实体拆分为Exercise和Exercise_History或类似的东西。然后,您将删除“ session ”和“锻炼”之间的任何关系,并在“ session ”和“exercise_History”之间建立一对多。
另外,如果Lift仅具有单个属性,则可能不应该是其自己的实体。
如果您这样处理,则应该获得所需的关系和功能。
关于ios - 核心数据架构设计,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45262788/