I am developing a learning management system application in laravel. In this system a student can enroll in multiple subjects, Each subject has many excercises which in-turn has many lectures.
I want to make an online quiz system similar to google classroom QuizAssignment but confused regarding the structure of database . The quiz will be connected with excercises in such a way that each excercise can have many quizes.
Student -> BelongToMany -> Subject -> hasMany -> Excercise-> hasMany -> Lecture
Student Model
 public function enrolledcourses(){
    return $this->belongsToMany(Subject::class,'course_student','student_id','subject_id')->withPivot('teacher_id','status');
}
Subject Model
 public function students(){
    return $this->belongsToMany(User::class,'course_student','subject_id','student_id')->withPivot('teacher_id','status');
}
 public function excercises()
{
    return $this->hasMany(Excercise::class);
}
Excercise Model
 public function subject()
{
    return $this->belongsTo(Subject::class);
}
public function lectures()
{
    return $this->hasMany(Lecture::class);
}
public function quizes()
{
    return $this->hasMany(Quiz::class);
}
Quiz Model
 public function excercise(){
    return $this->belongsTo(Excercise::class);
}
Quiz migration
public function up()
    {
        Schema::create('quizzes', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->integer('excercise_id')->unsigned();
            $table->string('title');
            $table->integer('obtained_marks');
            $table->integer('total_marks');
            $table->integer('passing_marks');
            $table->string('remarks');
            $table->integer('attempted')->default(0);
            $table->timestamps();
        });
    }
Now i want each excercise to have many quizes as well like :
Excercise ->hasMany -> Quiz and Lecture
But I want Quiz to be connected with the student as well so that i could record the performance of each student in a specific quiz .In other words , I want student to select subject, then select an excercise and then select any quiz and then after conducting the quiz his data should be saved in a table . Can anyone brief how do i structure the database so that i may solve the above stated problem .
via Chebli Mohamed
 
Aucun commentaire:
Enregistrer un commentaire