2016-12-24 67 views
3

我正在編程一個具有多語言功能的「模塊權限管理」系統。我使用三個相關表:Laravel模型中的多個表格

模塊,modules_trans,modules_permissions

它是可以接受的(最佳實踐)使用單一的模式來處理Laravel所有三個相關的表?

回答

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'); 
    } 
} 

您的數據庫應遵循ACIDwiki)儘可能!所以...... 不!不要混淆東西。如果你的關係如上所述那麼至少不是至少。

因此,您的表必須是如下...

module 
id | name | .... 

language_module 
id | language_id | module_id 

module_permission 
id | module_id | permission_id