首页 > 解决方案 > 在这种情况下,“日”表是个好主意吗?

问题描述

所以,我和一个朋友正在设计一个Workout Tracker应用程序作为一个副项目。在此应用程序中,您可以拥有Programs其中包括一组Workouts其中有一堆Sets. 假设您每天只训练一次,并不总是想要训练特定的Workout,相反,您想在训练时添加练习。
因此,我们考虑创建一个名为的表,该表Day将具有以下属性:

另外,还有一张名为的辅助桌DayExercices,用来放当天做的所有功法。

这些方案将允许我们链接 a Workout(这将把我们带到它在表中的练习WorkoutExercices),如果用户想在那天添加任何其他练习,这将是可能的,因为它将被添加到DayExercices.

但是,这会被认为是好的做法吗?我们应该改变数据库方案吗?

这是当前的数据库方案。

当前数据库方案

标签: sql

解决方案


所以基本上从我的理解来看,一个练习确实可以每天发生不止一次,所以你需要这样的东西:

ID、日期、运动 ID

Id 将是主键,因为您可以拥有多对相同的 Day,ExerciseID。

我还快速浏览了您的架构,在我看来,您在那里有一个圆圈。我建议把桌子扔掉WorkoutMuscles。锻炼是一组练习,这些练习实际上是在训练你的肌肉。例如,假设您在锻炼下添加了一个新练习,这意味着您还需要更新WorkoutMuscles. 此外,我建议将WorkoutExercises表重命名为Exercises. 这些表应该被命名为它们的实体而不是它们所拥有的关系。

如果您想更轻松地检索信息,您可以创建视图。


推荐阅读