我有一个表格,用户可以在其中进行锻炼。具有以下参数的锻炼has_many
练习:
- 名称:卧推
- 套:3
- 重复次数:12
- 休息时间:60 秒
我想要做的是为重复和休息时间存储多个值,每组一个,但如果可能的话,不必使用连接表来存储数据。所以例如我想做这样的事情:
- 名称:卧推
- 套:3
- 重复次数:12、8、6
- 休息时间:60、60、30
那可能吗?我在这个话题上找不到任何东西——也许我问错了问题?
我有一个表格,用户可以在其中进行锻炼。具有以下参数的锻炼has_many
练习:
我想要做的是为重复和休息时间存储多个值,每组一个,但如果可能的话,不必使用连接表来存储数据。所以例如我想做这样的事情:
那可能吗?我在这个话题上找不到任何东西——也许我问错了问题?
您应该为练习集创建一个单独的表,而不是尝试将序列化列表存储在单个列中。有关推理,请参阅这些其他答案:
创建一个单独的表来保存练习集可能看起来不必要地复杂,但这就是关系数据库的工作方式。通过将数据存储在单独的表中,您可以使用 ActiveRecord 轻松处理数据,例如计算最大重复次数或总休息时间。如果您将值存储为列表,则必须编写不必要的自定义代码来执行此类操作。
链接的答案更详细,有更多理由使用单独的表格。
这是我认为exercise_set
表的架构:
id
(例如 455、466、468)——主键workout_id
(例如 288, 288, 288) – 外键set_number
(例如 1、2、3)repetitions
(例如 12、8、6)rest_time
(例如 60、60、30)