hasMany:通过允许对同一项目进行单独编辑吗?

时间:2011-08-08 22:56:42

标签: mysql cakephp

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

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

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为每个用户存储每个锻炼的所有个人详细信息?

感谢

1 个答案:

答案 0 :(得分:1)

是的,你的第二个解决方案会运行良好,这就是当有额外信息存储在连接表中时,我通常会做HABTM关系。

User hasMany WorkoutDetail
Workout hasMany WorkoutDetail

您可以添加的另一件事是

WorkoutDetail belongsTo User
WorkoutDetail belongsTo Workout

这样,如果您查询WorkoutDetail表,则会获得UserWorkout信息。

就像你说的那样,每个用户都应该在WorkoutDetail表中有一个单独的条目。

相关问题