如何为Laravel 5.2中的表选择关系?

How to choose a relationship for tables in Laravel 5.2?

我创建了三个 table:

Student(ID, username), Teacher(ID, name) and Rating(ID, rating)

关于我的评分 table 我想记录学生对特定老师的评分。每个学生只能给老师打一次分。他可以评价其他老师,但不能评价同一位老师。

在这种情况下,哪种关系更适合呢?我是 Laravel.

的新手

由于每个学生只能给老师评分一次,最直接的方法是将 student_idteacher_id 列添加到 Rating table 并将它们用作外国关系中的关键。

然后可以在Student模型中定义关系:

class Student extends Model
{
 ... 
    // Ratings given by the student
    public function ratings()
    {
        return $this->hasMany('App\Rating');
    }
}

和教师模型:

class Teacher extends Model
{
 ... 
    // Ratings received by the teacher
    public function ratings()
    {
        return $this->hasMany('App\Rating');
    }
}

阅读有关一对多关系的更多信息:

https://laravel.com/docs/5.3/eloquent-relationships#one-to-many