核心数据架构设计
Posted
技术标签:
【中文标题】核心数据架构设计【英文标题】:Core Data Schema Design 【发布时间】:2017-07-23 07:54:40 【问题描述】:我正在尝试编写一个 ios 应用程序来跟踪您在健身房举起的重量,但我正在努力创建我的核心数据架构。目前我有一个运动实体,它存储有关特定运动的信息(例如二头肌卷曲),我有一个只有名称和图像的运动实体。锻炼实体与锻炼实体具有多对多关系。我需要加入的是“会话”功能——用户完成锻炼并存储他/她在特定锻炼中举起的重量的能力。例如。我想说我完成了我的“腿部日”锻炼并为每次锻炼举起这些重量。所以我的核心数据现在看起来像这样。
schema
我将如何存储会话数据?我觉得会话必须与锻炼具有一对一的关系,但这并不能让我为锻炼中的每个锻炼添加结果......我还认为我可能需要一本字典来存储每个锻炼的重量。
任何帮助将不胜感激,因为我以前从未真正了解过数据库。
谢谢
编辑:我已将架构更改为如下所示
schema2
【问题讨论】:
【参考方案1】:因此,关于您的架构2,在数据库设计中,将关系形成一个“圆圈”通常是不好的做法。此外,如果一个实体只有一个属性,它可以被简化为其父级的一个属性。
我可能会以不同的方式处理您的设计。
您应该将您的锻炼实体拆分为锻炼和锻炼历史或类似的东西。然后,您将删除 Session 和 Workout 之间的任何关系,并在 Session 和 Exercise_History 之间建立一对多的关系。
另外,如果 Lift 只有一个属性,它可能不应该是它自己的实体。
如果您这样处理,您应该会获得所需的关系和功能。
【讨论】:
以上是关于核心数据架构设计的主要内容,如果未能解决你的问题,请参考以下文章