gpt4 book ai didi

php - 数据库问题,如何存储变化的数据结构

转载 作者:行者123 更新时间:2023-11-29 06:21:11 24 4
gpt4 key购买 nike

我正在构建一些应用程序,其中涉及培训计划。我的问题是这样的,

锻炼可以像这样简单:

3 sets of 45 push ups.

所以我只创建 2 个字段,套/数

但是锻炼也可以是:

45 minutes run, 3 sets of 45 pushups, 2 minutes of rope jumping, 150 meter swimming.

所以我需要构建一个表,它知道在更改结构时存储数据,稍后我仍然可以将其转换为 GUI 上的真实数据。

我怎样才能高效、明智地做到这一点?

编辑:

为了说得更清楚一些,我想在每次锻炼中具体说明我在其中做了什么。所以一项锻炼可能是:3套,第一:45个俯卧撑第二:32个俯卧撑第三:30个俯卧撑

另一个锻炼可能是:3组俯卧撑:第一:45个俯卧撑第二:32个俯卧撑第三:30个俯卧撑并且2分钟跳绳150米游泳

数据不一致,一组可能是俯卧撑的次数,下一组可能是时间长度等。

最佳答案

我想说,这需要一种 1:n 关系,其中有一个主“锻炼”表和一个包含锻炼的所有事件的统一“组件”表。

您的主表锻炼:

id   int
participant varchar(255)
date datetime
...... any other workout related data

然后是子表workout_components:

workout_id  int          // Which workout this belongs to
tabindex int // Which sorting order this component has in the list
repeat int // Number of repetitions (e.g. 3 sets)
quantity int // e.g. 45 push-ups or 150 meters of cycling
quentity_unit varchar // e.g. minutes or laps
activity varchar // push-ups, cycling .....

示例值如下所示:

锻炼表:

id          participant      date
1 Harry Miller 2010-08-21

workout_components 表:

workout_id  tabindex     repeat      quantity     quantity_unit  activity
1 1 3 45 pcs pushups
1 2 1 2 minutes rope-jumping

优点:

  • 不限于特定事件

  • 易于查询 - 每个与如何从这种数据结构中获取某些内容相关的问题都已经在 SO 上得到了解答

  • 可以在每次锻炼中自由添加事件

关于php - 数据库问题,如何存储变化的数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3537288/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com