核心数据架构设计

时间:2017-07-23 07:54:41

标签: ios database core-data

我正在尝试编写一个iOS应用程序来跟踪你在健身房举重的重量,但我正在努力创建我的Core Data架构。目前我有一个运动实体存储有关特定运动的信息(例如Bicep Curl),我有一个锻炼实体,只有一个名字&图片。锻炼实体与锻炼实体具有多对多的关系。我需要加入的是“会话”功能 - 用户完成锻炼并存储他/她在特定锻炼中举重的能力。例如。我想说我完成了“腿部日”训练,并为每次运动提升了这些重量。所以我的核心数据目前看起来像这样。

schema

我如何存储会话数据?我觉得会话必须与锻炼有一对一的关系,但这不能让我为锻炼中的每个锻炼添加结果...我还认为我可能需要一本字典来存储每个锻炼的权重。 / p>

任何帮助都会非常感激,因为我之前从未真正了解过数据库。

由于

编辑:我已将模式更改为此类

schema2

1 个答案:

答案 0 :(得分:0)

因此,关于你的schema2,在数据库设计中,通常不好的做法是建立一个形成" circle"的关系。此外,如果实体只有一个属性,则可以将其缩减为其父级的属性。

我可能会对你的设计有所不同。

您应该将锻炼实体分为Exercise和Exercise_History或类似的东西。然后你将删除Session和Workout之间的任何关系,并在Session和Exercise_History之间有一对多。

此外,如果Lift只有一个属性,它可能不应该是它自己的实体。

如果您这样做,您应该获得所需的关系和功能。