如何为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_id
和 teacher_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
我创建了三个 table:
Student(ID, username), Teacher(ID, name) and Rating(ID, rating)
关于我的评分 table 我想记录学生对特定老师的评分。每个学生只能给老师打一次分。他可以评价其他老师,但不能评价同一位老师。
在这种情况下,哪种关系更适合呢?我是 Laravel.
的新手由于每个学生只能给老师评分一次,最直接的方法是将 student_id
和 teacher_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