加入 table 到 CakePHP 3.x 中的加入 table:关联和双重作用
Join table to a join table in CakePHP 3.x: associations and double-action
在书中的 this example 中,我希望允许其他用户修改 CoursesMemberships
中的字段 days_attended
加入 table,但每天只能修改一次。为此,我将使用 id | coursesmembership_id | student_id | created | modified
字段创建一个新的连接 table CoursesMembershipsReviews
。问题是如何与协会相处?我会这样做:
一个学生有很多 CoursesMembershipsReviews
和 belongsToMany CoursesMemberships
through CoursesMembershipsReviews
;
a CoursesMembership
hasMany CoursesMembershipsReviews
and belongsToMany Students
through CoursesMembershipsReviews
;
a CoursesMembershipsReview
属于 CoursesMemberships
并且属于 Students
.
我有点困惑,因为 CoursesMemberships
table 本身已经是一个连接 table。这是正确的方法吗?
第二个问题是如何在提交表单时避免双重操作,这将允许另一个用户更改字段days_attended
?如果我想检查最后一个 modified
是否是 24 小时,他需要同时 edit()
a CoursesMemberships
和 create/modify CoursesMembershipsReview
。谢谢。
关于第一个答案我会做以下事情
Student
- 有很多
CoursesMembershipsReviews
- 属于
Courses
通过 CoursesMemberships
;
CoursesMembership
- 有很多
CoursesMembershipsReviews
- 属于
Students
- 属于
Courses
CoursesMembershipsReview
- 属于
CoursesMemberships
- 属于
Students
无论如何,您的问题中不清楚 'once a day' 是指单个用户还是所有用户。
换句话说:如果用户编辑 courseMembership,在接下来的 24 小时内是否也禁止其他用户编辑或仅针对该用户?
在第一种情况下,您甚至不需要 courses_memberships_reviews
table(除非您需要)。您可以在 course_memberships
table 中存储有关编辑记录的人员和时间的信息。
在第二种情况下,当您创建 CoursesMembership
实体时,您可以附加一个 CoursesMembershipsReview
实体,其中包含创建 CoursesMembership
的用户的信息,并同时保存这两个实体时间
在书中的 this example 中,我希望允许其他用户修改 CoursesMemberships
中的字段 days_attended
加入 table,但每天只能修改一次。为此,我将使用 id | coursesmembership_id | student_id | created | modified
字段创建一个新的连接 table CoursesMembershipsReviews
。问题是如何与协会相处?我会这样做:
一个学生有很多
CoursesMembershipsReviews
和 belongsToManyCoursesMemberships
throughCoursesMembershipsReviews
;a
CoursesMembership
hasManyCoursesMembershipsReviews
and belongsToManyStudents
throughCoursesMembershipsReviews
;a
CoursesMembershipsReview
属于CoursesMemberships
并且属于Students
.
我有点困惑,因为 CoursesMemberships
table 本身已经是一个连接 table。这是正确的方法吗?
第二个问题是如何在提交表单时避免双重操作,这将允许另一个用户更改字段days_attended
?如果我想检查最后一个 modified
是否是 24 小时,他需要同时 edit()
a CoursesMemberships
和 create/modify CoursesMembershipsReview
。谢谢。
关于第一个答案我会做以下事情
Student
- 有很多
CoursesMembershipsReviews
- 属于
Courses
通过CoursesMemberships
;
- 有很多
CoursesMembership
- 有很多
CoursesMembershipsReviews
- 属于
Students
- 属于
Courses
- 有很多
CoursesMembershipsReview
- 属于
CoursesMemberships
- 属于
Students
- 属于
无论如何,您的问题中不清楚 'once a day' 是指单个用户还是所有用户。
换句话说:如果用户编辑 courseMembership,在接下来的 24 小时内是否也禁止其他用户编辑或仅针对该用户?
在第一种情况下,您甚至不需要 courses_memberships_reviews
table(除非您需要)。您可以在 course_memberships
table 中存储有关编辑记录的人员和时间的信息。
在第二种情况下,当您创建 CoursesMembership
实体时,您可以附加一个 CoursesMembershipsReview
实体,其中包含创建 CoursesMembership
的用户的信息,并同时保存这两个实体时间