在本书的this example中,我想允许其他用户修改days_attended
联接表中的字段CoursesMemberships
,但每天只能修改一次。为此,我将使用CoursesMembershipsReviews
字段创建一个新的联接表id | coursesmembership_id | student_id | created | modified
。问题是如何与协会合作?我愿意:
学生有许多CoursesMembershipsReviews
并且通过CoursesMemberships
属于我们CoursesMembershipsReviews
;
CoursesMembership
hasMany CoursesMembershipsReviews
且belongsToMany Students
至CoursesMembershipsReviews
;
a CoursesMembershipsReview
belongsTo CoursesMemberships
并且属于Students
。
我有点困惑,因为CoursesMemberships
表已经是连接表本身。这是正确的方法吗?
第二个问题是如何在提交表格时避免双重操作,以允许其他用户更改字段days_attended
?如果我想检查最后edit()
是否为24小时,他需要CoursesMemberships
CoursesMembershipsReview
并同时创建/修改modified
。谢谢。
答案 0 :(得分:1)
关于第一个答案我会做以下
Student
CoursesMembershipsReviews
Courses
至CoursesMemberships
; CoursesMembership
CoursesMembershipsReviews
Students
Courses
CoursesMembershipsReview
CoursesMemberships
Students
无论如何,你的问题不清楚“每天一次”是指单个用户还是所有用户。
换句话说:如果用户编辑courseMembership是否也禁止在接下来的24小时内为其他用户编辑或仅为该用户编辑?
在第一个场景中,您甚至不需要courses_memberships_reviews
表(除非您需要它)。您只需在course_memberships
表中存储有关编辑记录的人员和时间的信息。
在创建CoursesMembership
实体的第二个方案中,您可以附加一个CoursesMembershipsReview
实体,其中包含创建CoursesMembership
的用户的信息并同时保存两个< / p>