我创建了三个表:
Student(ID, username), Teacher(ID, name) and Rating(ID, rating)
在我的评级表上,我想将学生的评分记录到特定的老师。每个学生都可以给老师一次评分。他可以评价其他老师但不是同一位老师。
在这种情况下,哪种关系更适合?我是Laravel的新手。
答案 0 :(得分:1)
由于每位学生只能为教师评分一次,因此最直接的方法是将student_id
和teacher_id
列添加到Rating
表,并将其用作关系中的外键。< / p>
然后您可以在学生模型中定义关系:
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