Mysql hasMany:到是否允许对同一项进行单独编辑?

Mysql hasMany:到是否允许对同一项进行单独编辑?,mysql,cakephp,Mysql,Cakephp,为了解决这个问题,我是一名设计师/前端开发人员,希望获得一些关于如何设置模型的指导。我已经通读了关于协会和HABTM的蛋糕书,特别是有很多,但仍然不太明白哪本书适合我的需要 我用以下模型和简单关系构建了一个蛋糕应用程序: User hasMany Workout User hasMany Shoe Shoe hasMany Workout 我想允许用户将其他用户添加到训练中,因此用户HABTM训练。将User2添加到训练中也会为User2创建训练 我还希望User2能够自己编辑训练的详细信息,

为了解决这个问题,我是一名设计师/前端开发人员,希望获得一些关于如何设置模型的指导。我已经通读了关于协会和HABTM的蛋糕书,特别是有很多,但仍然不太明白哪本书适合我的需要

我用以下模型和简单关系构建了一个蛋糕应用程序:

User hasMany Workout
User hasMany Shoe
Shoe hasMany Workout
我想允许用户将其他用户添加到训练中,因此用户HABTM训练。将User2添加到训练中也会为User2创建训练

我还希望User2能够自己编辑训练的详细信息,同时维护关联(以及User1的详细信息)。例如,User2可以指定自己的笔记或与User1指定的不同的训练时间

似乎HABTM关联不允许用户特定的细节部分,但可能有很多?我可以这样做吗:

User hasMany WorkoutDetail
Workout hasMany WorkoutDetail
User hasMany Shoe
Shoe hasMany Workout
WorkoutDetail在何处存储每个用户每次训练的所有个人详细信息


谢谢

是的,您的第二个解决方案会很好地工作,这就是我通常在连接表中存储额外信息时处理HABTM关系的方式

User hasMany WorkoutDetail
Workout hasMany WorkoutDetail
你还可以补充一件事

WorkoutDetail belongsTo User
WorkoutDetail belongsTo Workout
这样,如果您查询
WorkoutDetail
表,您将获得
User
Workout
信息


正如您所说,每个用户在WorkoutDetail表中都应该有一个单独的条目。

谢谢,我一直在努力让它真正起作用。我正在执行saveAll(),但所有数据都保存到“训练”表中,而不是同时保存训练和训练详细信息。我从哪个控制器执行保存操作重要吗?我目前正在尝试从“训练控制器”执行所有操作。@Gio只要关联设置正确,从哪个控制器执行操作应该无关紧要。也就是说,您应该有$hasMany=array('WorkoutDetail');在你的训练模式中。您应该遵循CakePHP烹饪手册中定义的saveAll格式。如果你已经有了所有这些,你可以粘贴代码,我们可以看到发生了什么。