我有一个练习表。我希望能够在我的React应用程序中创建锻炼,然后将其提交到数据库。但我一直在努力思考架构的工作方式。我该如何实现?
我实质上希望锻炼是一系列锻炼。但是我知道在数据库中存储数组不是最好的主意
但是我不明白如果我先有一个运动表,然后又有一个运动表,如何将它们结合在一起,制成一个有运动表的锻炼表
我希望能够进行一次独特的锻炼,这将为我提供该锻炼的锻炼清单以及日期和其他信息。
我能看到的唯一方法是:
id: 1, name: 'my first workout', exercises: [array of objects]
有什么想法可以看到这种模式吗?
答案 0 :(得分:0)
对于多对多关系,您应该有第三个表来存储关系,该表称为连接表。例如,在您的情况下,每行将有一个exerciseID
和一个workoutID
,这意味着两个(锻炼和锻炼)是相关的。
因此,例如,该表中可以有许多行,其中有exerciseID = 1
(不同的workoutID
)和许多行中的workoutID = 5
(不同的exerciseID
),因此很多对多。
联结表的每一行都有三个字段:
例如,假设我们有一个这样的联结表:
ID ExerciseID WorkoutID
-------------------------------
1000 12 5
1001 12 6
1002 12 9
1003 12 12
1004 12 27
1005 13 2
1006 13 6
1007 13 9
这意味着:
12
有锻炼[5, 6, 9, 12, 27]
13
有锻炼[2, 6, 9]
但是关于如何创建此表:
您可以使用用户界面来添加,编辑和删除练习和锻炼,也可以自己操作。无论哪种方式,任何定义锻炼或锻炼方式的人都必须知道它们之间的关系!因此,他们还可以将该关系定义为联结表中的一行