gpt4 book ai didi

php - 如何在mysql中存储顺序数据

转载 作者:搜寻专家 更新时间:2023-10-30 20:27:41 24 4
gpt4 key购买 nike

我得到了一些锻炼程序的内容,这些内容将按顺序显示给用户。下面显示了一个最简单形式的示例。

id  name        duration    completed----------------------------------------1   jumping     10          12   running     15          03   cycling     12          04   push ups    30          1

通常表格至少有 100 行/练习,大约有 300 个表格(不同标准的不同练习)。我们没有任何前端,直接使用 dbForge Studio 数据库编辑器更新数据库。

之前的开发人员设计了表格,因此唯一 id 列也用作序列号。它也是 url 的一部分。例如。 xxx/exercise/12 专门查找数据库中 id=12 的实际第 12 行(他假设所有 id 都以 1 递增并且按顺序排列),而不是 id=12 的行。

明显的问题是,当我们想在表中添加一个练习时,比如说在 练习 5 之后,我们在 5 之后手动添加它,然后必须手动更新以下所有的 ID练习,使它们按顺序排列。理想情况下,我们应该只在表中添加一行,然后以某种方式解释 php 代码知道这个练习应该出现在练习 5 之后。 p>

同样,例如,如果我们删除编号为 17 的练习,则不会提供来自 url xxx/exercise/17 的内容。理想情况下,id=18 现在按顺序位于第 17 位,因此必须提供该内容。

尝试

我考虑过添加另一个列序列,以告知按什么顺序提供服务。但话又说回来,我又回到了方 block 1,因为我必须在添加/删除时更新序列号。

我还考虑过创建另一个表并以我们想要提供内容的任何顺序存储 ID 号。 - 但我不确定这是否真的是个好主意。


谁能指导我为这个问题设计合适的数据库/表?

编辑

我想我的问题没有说清楚。
我不想重新装满/重新订购 key 。我知道那不是应该设计数据库的方式。
但问题是,如果我在表的末尾添加一个内容,那么我如何告诉表/php 我想提供新添加的内容(id 可以说是 127)在 id=15 之后而不是最后服务。

最佳答案

关于“我还考虑过创建另一个表并以我们想要的任何顺序存储 ID 号来提供内容。-但我不确定这是否真的是个好主意。”

这不是一个好主意,而是一个绝妙的主意。这是骨架设计。它并不完美,但可以帮助您入门。

表练习 - ExerciseID、NameOfExercise、MeasuredIn,以及您可能需要的其他字段,. NameOfExercise 的示例值是俯卧撑(以重复次数为单位)和 RunningOnTheSpot(以秒为单位)。

表例程 - RoutineId、NameOfRoutine 以及您可能需要的其他字段。示例值是 Jane Fonda 的日常事件、海豹突击队的日常事件和老屁的日常事件。

最后,表格ExerciseRoutine。这是一个多对多的关系。一个练习可以不止一个例程,一个例程可以有多个练习。字段可以是 ExerciseID、RoutineID、Sequence、MeasuredInMultipler 以及您可能需要的其他字段。

这是一些示例数据。

ExerciseId, NameOfExercise,       MeasuredIn
1 Push Ups repetitions
2 Running on the Spot seconds
3 Jumping Jacks repetitions

RoutineId, NameOfRoutine
1 Jane Fonda
2 Navy Seal

最后

 RoutineID, ExerciseID, Sequence, MeasuredInMultipler
1 2 1 60
1 3 2 10
2 1 1 500
2 3 2 100

所以 Jane Fonda 的套路是原地跑 60 秒,然后是 10 次开合跳。与此同时,海军海豹突击队的日常事件是 500 次俯卧撑,然后是 100 次开合跳

这种方法允许您拥有许多例程,所有例程都相互独立。

关于php - 如何在mysql中存储顺序数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23463587/

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