我有几个通过HABTM关系相互关联的模型。
锻炼有很多练习| 练习有很多锻炼| 练习有一个日志| 用户有很多Exercises_Workouts
所有这些表关系都在一个表中设置
我想做什么: 如您所见,user_id和workout_id不是唯一的,但exercise_id和log_id将始终是唯一的。
我想找到一个用户的数据,然后找到所有锻炼,并让它返回所有练习及其相应的信息以及每个练习的日志信息。
最终输出看起来像这样。
我尝试了几种方法,但没有一种方法能够得到积极的结果。我还想听听一个比我更有经验的人如何处理这种情况。我能想到的唯一可能是我想要的是多个SELECT语句。
谢谢你的帮助。 干杯!
答案 0 :(得分:0)
“所有这些表关系都设置在一个表中”:你称那个表为什么?而这不是定义关系的通常方式。
“锻炼有很多练习|练习有很多锻炼|练习有一个日志|用户有很多练习_锻炼”:锻炼HABTM练习,(如果日志没有连接到任何其他桌子,在练习表中包含它的字段),用户有很多锻炼。
我尝试了几种方法,但没有一种方法能够得到积极的结果。我还想听听一个比我更有经验的人如何处理这种情况。我能想到的唯一可能是我想要的是多个SELECT语句。
您对SQL,PHP和CakePHP有多少熟悉?如果你是所有人的新手,那么很难解释如何做你想做的事。告诉我们到目前为止您使用了哪些方法。
答案 1 :(得分:0)
感谢您的帮助。我最终找到了自己的答案。
所有这些必须在一个表中的原因是我需要能够访问与所有这些分支相关的单个ID。此外,每个分支不仅仅被引用更新。我最终做的是使用可包含的行为。我实际上通过自己的代码找到了这个答案。我怀疑我之前遇到过这个问题。
可控制的行为使我能够比以前更深入地进入我的协会。 最初我只是从Workout-> Exercise-> Log中提取数据,但我还需要LogDay(个别条目)。所以我使用可包含的行为来获取数据以及删除其他不必要的数据。
再次感谢!