0

我有一个表格,用户可以在其中进行锻炼。具有以下参数的锻炼has_many练习:

  • 名称:卧推
  • 套:3
  • 重复次数:12
  • 休息时间:60 秒

我想要做的是为重复和休息时间存储多个值,每组一个,但如果可能的话,不必使用连接表来存储数据。所以例如我想做这样的事情:

  • 名称:卧推
  • 套:3
  • 重复次数:12、8、6
  • 休息时间:60、60、30

那可能吗?我在这个话题上找不到任何东西——也许我问错了问题?

4

1 回答 1

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)
于 2013-08-12T17:25:13.843 回答