Mysql 将表连接到CakePHP 3.x中的连接表:关联和双重操作
在本书中,我希望允许其他用户修改Mysql 将表连接到CakePHP 3.x中的连接表:关联和双重操作,mysql,join,associations,cakephp-3.x,Mysql,Join,Associations,Cakephp 3.x,在本书中,我希望允许其他用户修改CoursesMembershipsjoin表中的days\u attended字段,但只能每天修改一次。为此,我将使用id | coursesmembership | id | student | id | created | modified字段创建一个新的联接表coursesmemberships视图。问题是如何与协会相处?我会: 一个学生有许多课程成员视图,并且通过课程成员视图拥有许多课程成员视图 一个CoursesMembership有许多course
CoursesMemberships
join表中的days\u attended
字段,但只能每天修改一次。为此,我将使用id | coursesmembership | id | student | id | created | modified
字段创建一个新的联接表coursesmemberships视图
。问题是如何与协会相处?我会:
- 一个学生有许多
,并且通过课程成员视图
拥有许多课程成员视图
课程成员视图
- 一个
有许多CoursesMembership
,并且通过coursesmberships视图
属于许多coursesmberships视图
学生
- a
CoursesMemberships查看
belongsTo
和belongsTocoursesmberships
Students
CoursesMemberships
表本身已经是一个联接表了。这条路对吗
第二个问题是如何避免在提交表单时出现双重操作,这将允许其他用户更改字段
days\u attered
?如果我想检查最后一次修改的会员是否已经24小时了,他需要edit()
aCoursesMemberships
并同时创建/修改coursesmberships查看。谢谢。关于第一个答案,我将做以下几点
学生
- 拥有多个
课程成员视图
- 属于多个
课程
至课程会员
李>
CoursesMembership
- 拥有多个
课程成员视图
- 以下是学生
属于课程
CoursesMembershipsReview
- 以下为
课程会员资格
- 以下是学生
无论如何,你的问题不清楚“一天一次”是指单个用户还是指所有用户
换句话说:如果一个用户编辑课程成员身份,那么在接下来的24小时内,是否也禁止其他用户编辑课程成员身份,或者仅限于该用户
在第一个场景中,您甚至不需要课程\会员资格\审查
表(除非您需要)。您只需在course\u memberships
表中存储有关谁以及何时编辑记录的信息
在第二个场景中,当您创建
课程成员身份
实体时,您可以附加一个课程成员身份查看
实体,其中包含创建课程成员身份
的用户的信息,并同时保存这两个实体谢谢您的回答!因此,你建议通过课程成员视图(我前面提到的其他关联),学生和课程成员都不属于彼此,这让生活变得更加轻松。我确实有第二个场景,但课程成员是由参与的学生更早创建的。其他人可以修改他记录中的参加天数,当他们这样做时,我需要添加/编辑新的CourseSMemberships查看实体以执行我的24小时检查。我还不清楚怎么做。所以你是说如果我修改你参加的天数,那么除了我以外的任何人都可以在接下来的24小时内再次修改,对吗?正确。所有其他用户都可以向此字段添加天数,但每天只能添加一次。您可以使用验证来确保。您想创建一个应用程序规则。本书中的Ser数据验证我考虑过自定义验证,但无论如何,我都需要先在CoursesMembershipsReviews中编辑(或创建,如果不存在)一条记录。如果我在控制器中执行此操作并由vlaidation进行检查,它会工作吗?