php – 如何在eloquent中创建多列主键
发布时间:2020-12-13 16:00:15 所属栏目:PHP教程 来源:网络整理
导读:我将Managers,Course_Type和Course Years存储在数据库中. 我将根据递增的值来命名我的课程,例如 Course_type course_order course_year Course_type[0] 1 2015 Course_type[0] 2 2015 Course_type[0] 3 2015 Course_type[0] 4 2015 Course_type[0] 1 2016 Co
我将Managers,Course_Type和Course Years存储在数据库中.
我将根据递增的值来命名我的课程,例如 Course_type course_order course_year Course_type[0] 1 2015 Course_type[0] 2 2015 Course_type[0] 3 2015 Course_type[0] 4 2015 Course_type[0] 1 2016 Course_type[1] 1 2015 Course_type[2] 1 2015 Course_type[2] 2 2015 所以我创建数据库就像 Schema::create('courses',function (Blueprint $table) { $table->increments('id'); $table->enum('course_type',[ 'Yos','TomerABC','TomerA1A2','TomerB1B2','TomerC1C2','TomerAB','TomerBC','SatMatGeo','SatCriRea','SatCriReaMat',]); $table->integer('added_by'); $table->integer('start'); $table->integer('year_code'); $table->integer('end'); $table->integer('course_order'); $table->unique( array('added_by','year_code','course_order') ); 这是我在createprocess上的控制器 $courSEOrder = AppCourses::where('added_by',Auth::id()) ->where('year_code',$input['year_code'])->max('course_order'); $course->course_order = $courSEOrder + 1; 但是因为我在数据库中寻找max(‘course_order’)如果我删除让我们说课程顺序2.接下来添加的课程将是4而不是3. 所以我的问题是如何在删除之后检查course_order之间的缺失值以填充位置? P.S一个mysql解决方案比我认为的更快,更好. 解决方法
您可以使用新表来存储已删除的记录. 当您首先需要一个新的course_order号码时,您应该检查DeletedCourses表.如果DeletedRecord有匹配的记录,则从DeletedRecords表中删除它并将其用于新的course_order.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |