我有一个用户可以进行锻炼的表格。锻炼has_many
练习具有以下参数:
我要做的是为重复和休息时间存储多个值,每个集合一个,但如果可能的话,不必使用连接表来存储数据。所以例如我想做这样的事情:
这可能吗?我找不到关于这个话题的任何内容 - 也许我问这个问题错了?
答案 0 :(得分:1)
您应该为练习集创建单独的表,而不是尝试将序列化列表存储在单个列中。请参阅以下其他答案的推理:
创建一个单独的表只是为了保存练习集可能看起来不必要地复杂,但它是关系数据库的工作方式。通过将数据存储在单独的表中,您可以使用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)