因此,我和一个 friend 正在设计一个锻炼跟踪器应用程序作为业余项目。在此应用程序中,您可以拥有 Programs
其中包括一组Workouts
其中有一堆Sets
。假设您每天只训练一次,并且并不总是想要训练特定的 Workout
,相反,您希望在训练时添加练习。
于是,我们想到了创建一个名为Day
的表它将具有以下属性:
- ID - 作为主键(可能是日期)
- WorkoutID - 如果该日期没有任何锻炼,则可为 Null。
此外,还有一个名为 DayExercices
的辅助表这将保存当天完成的所有练习。
这些方案将允许我们链接 Workout
(这将使我们看到表 WorkoutExercices
中的练习)并且,如果用户想要在当天添加任何其他练习,这是可能的,因为它将被添加到 DayExercices
中。 .
但是,这会被认为是好的做法吗?我们应该改变数据库方案吗?
这是当前的数据库方案。
最佳答案
所以基本上根据我的理解,一项练习确实可以每天进行多次,所以你需要这样的东西:
ID、日期、锻炼 ID
Id 将成为主键,因为您可以有多个相同的 Day、ExerciseID 对。
我还快速浏览了您的架构,在我看来,您那里有一个圆圈。我建议扔掉WorkoutMuscles
table 。锻炼是一组练习,这些练习实际上训练你的肌肉。例如,假设您在锻炼下添加了一项新练习,这意味着您还需要更新 WorkoutMucles
。此外,我建议将 WorkoutExercises
表重命名为 Exercises
。这些表应该被命名为它们的实体,而不是它们所具有的关系。
如果您想更轻松地检索信息,可以创建 View 。
关于sql - 在这种情况下, "Day"表是个好主意吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63380126/