数据库管理系统,如何使多个记录属于多个其他记录

时间:2016-12-13 17:57:12

标签: database postgresql

我知道这个问题的措辞有点棘手,所以我会尽量让它更容易理解。

我有一个练习表,一个锻炼表和一个用户表。

练习有他们的ID,名字,集合,重复和重量。

锻炼有他们的ID,姓名,难度,持续时间和休息时间。

用户拥有登录和许多无关紧要的东西。

目前,我有很多不同ID的SAME练习,外键导致Workout ID。所以我的桌子看起来很乱。例如,有3个练习" Bench Press",都是相同的,只是链接到不同锻炼的ID是不同的。同样适用于锻炼,很多相同的训练,只是不同的身份。

我的问题是,如何创建表,其中多个记录(练习)可以属于不同表中的多个记录(锻炼),或者如何创建两个表,其中多个练习可以同时出现在多次锻炼,相同的锻炼可以出现在多个锻炼中。

1 个答案:

答案 0 :(得分:0)

我同意内维尔。

练习表 锻炼表 用户表 UserExercise表 UserWorkout表

因此,用户可以使用UserExercise表绑定练习 - 练习ID和用户ID将存储在那里 - 为您提供“用户到练习”的链接。对于UserWorkout表也是如此。显然你需要适应你的用例。

您确实希望使用外键定义(FK' s)建立和记录UserWorkout表中的关系。这表示ExerciseID属于Exercise表,ID属性 - 表的主键(PK)。

这是工作中的关系模型。您不会以这种方式复制数据,并且可以使用连接和视图来对关系表进行友好的视图。