l.r*_*r0a 6 php database-design laravel laravel-5.3
我已经在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);
}
Run Code Online (Sandbox Code Playgroud)
我目前的费率型号:
public function sender(){
return $this->belongsTo(User::class,"sender");
}
public function receiver(){
return $this->belongsToMany(User::class);
}
Run Code Online (Sandbox Code Playgroud)
第二种选择是:
用户(id)| 费率(身份证,发件人,收件人,评论,费率)
用户模型:
public function rates_sent(){
return $this->hasMany(Rate::class,"sender");
}
public function rates_received(){
return $this->hasMany(Rate::class,"receiver");
}
Run Code Online (Sandbox Code Playgroud)
费率模型:
public function sender(){
return $this->belongsTo(User::class,"sender");
}
public function receiver(){
return $this->belongsTo(UseR::class,"receiver");
}
Run Code Online (Sandbox Code Playgroud)
那么,这两个都是好的解决方案 一种选择比另一种更容易接受吗?还有另一个更好的选择吗?
为我的坏事道歉.提前致谢
如果您这样想:“用户有多个费率,但费率属于一个用户”,那么您应该遵循第二个选项。
这就是我的模型和表格的样子:
用户-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');
}
Run Code Online (Sandbox Code Playgroud)
Rate.php
public function sender() {
return $this->belongsTo(User::class, 'sender_id');
}
public function receiver() {
return $this->belongsTo(User::class, 'receiver_id');
}
Run Code Online (Sandbox Code Playgroud)
我认为这个选项比第一个更合适。