我正在编写一个支持多语言的“模块权限管理”系统。我正在使用三个相关的表格:
modules,modules_trans,modules_permissions
使用单一模型处理Laravel中的所有三个相关表格是否可接受(最佳做法)?
答案 0 :(得分:2)
根据我的理解,您的关系可以如下
class Language
{
public function modules()
{
return $this->belongsToMany('App\Module');
}
}
class Permission
{
public function modules()
{
return $this->belongsToMany('App\Module');
}
}
class Module
{
public function languages()
{
return $this->belongsToMany('App\Language');
}
public function permissions()
{
return $this->belongsToMany('App\Permission');
}
}
您的数据库应尽可能遵循 ACID (wiki)!所以.... 不!不要混淆东西。如果您的关系如上所述,则至少不是。
因此,您的表格必须如下...
module
id | name | ....
language_module
id | language_id | module_id
module_permission
id | module_id | permission_id