我将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 = \App\Courses::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.