2016-12-24 7 views
3

多言語対応の「モジュール権限管理」システムをプログラミングしています。 複数のテーブルが1つのLaravelモデル

が許容できる(ベストプラクティス)はLaravelのすべての3つの関連テーブルを処理するために単一のモデルを使用することです

モジュール、modules_trans、modules_permissions

:私は3つの関連テーブルを使用していますか?次のように私が理解から

答えて

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)に従うべきであるあなたのデータベース!だから.... いいえ!ものを混ぜてはいけません。あなたの関係が上記の通りであれば、少なくともatleast。

次のようにそのため、あなたのテーブルがなければなりません...

module 
id | name | .... 

language_module 
id | language_id | module_id 

module_permission 
id | module_id | permission_id 
関連する問題