我已经创建了三个表:
Student(ID, username), Teacher(ID, name) and Rating(ID, rating)
在我的评分表中,我想记录学生对特定老师的评分。每个学生只能给老师评价一次。他可以评价别的老师,但不能评价同一个老师。
在这种情况下,哪种关系更适合?我是Laravel的新手。
由于每个学生只能评价一个老师一次,最直接的方法是将student_id
和teacher_id
列添加到Rating
表中,并将它们用作关系中的外键。
然后你可以定义学生模型中的关系:
class Student extends Model
{
...
// Ratings given by the student
public function ratings()
{
return $this->hasMany('AppRating');
}
}
和Teacher模型:
class Teacher extends Model
{
...
// Ratings received by the teacher
public function ratings()
{
return $this->hasMany('AppRating');
}
}
阅读更多关于一对多的关系:
https://laravel.com/docs/5.3/eloquent-relationships一对多