我已经在Laravel的Web应用程序中工作,需要用户之间的评级系统。所以,我一直在阅读Laravel文档以及这里和那里的一些帖子,但我一直想知道哪个是完成我想要做的最好的方法。我无法决定接下来的两个选项。
我目前的表格是:
用户(id)| 费率(身份证,寄件人,评论,费率) | user_rate(id,user_id,rate_id)
我当前的用户模型:
public function rates_sent(){
return $this->hasMany(Rate::class,"sender");
}
public function rates(){
return $this->belongsToMany(Rate::class);
}
我目前的费率型号:
public function sender(){
return $this->belongsTo(User::class,"sender");
}
public function receiver(){
return $this->belongsToMany(User::class);
}
第二个选项是:
用户(id)| 费率(身份证,发件人,收件人,评论,费率)
用户模型:
public function rates_sent(){
return $this->hasMany(Rate::class,"sender");
}
public function rates_received(){
return $this->hasMany(Rate::class,"receiver");
}
费率模型:
public function sender(){
return $this->belongsTo(User::class,"sender");
}
public function receiver(){
return $this->belongsTo(UseR::class,"receiver");
}
那么,这两个都是好的解决方案吗?一种选择比另一种更容易接受吗?还有另一个更好的选择吗?
道歉我的坏心情。提前致谢
答案 0 :(得分:1)
如果您这样想:“用户有很多费率,但费率属于一个用户”,那么您应该遵循第二个选项。
这就是我的模型和表格的样子:
用户 - id
费率 - id, sender_id, receiver_id, comment, rate
User.php
public function sentRates() {
return $this->hasMany(Rate::class, 'sender_id');
}
public function receivedRates() {
return $this->hasMany(Rate::class, 'receiver_id');
}
Rate.php
public function sender() {
return $this->belongsTo(User::class, 'sender_id');
}
public function receiver() {
return $this->belongsTo(User::class, 'receiver_id');
}
我认为这个选项比第一个更合适。