I have 3 tables:
instructor_student. The idea is that an instructor can be set as the 'current owner' of a student, and there can only be one 'owner' at a given time (a student might have many instructor/owners over time though). I'm using an boolean pivot field called
active to determine which one is the currently active instructor. Here's my pivot table structure:
$table->unsignedInteger('instructor_id'); $table->unsignedInteger('student_id'); $table->boolean('active');
So, to update the current instructor/owner for a given student, I'm doing something like this:
$student = Student::find($id); DB::table('instructor_student')->where('student_id', '=', $this->id) ->update(['active' => false]); $student->instructors()->attach($instructorId, ['active' => true]);
Problem is, what if I want to update / set the current instructor for many students at once? Say I have a list of student ID's that I want to set the current instructor for... is my best option to do a
whereIn to set any currently active to false, and then call
sync to set the new active instructor for all the students?
Just want to make sure I'm thinking about this correctly. Thoughts?