2015-09-09 147 views
0

你好,我剛剛意識到我是如何非常困惑,我是由這些關係,我有一個問題,我需要問。假設我有兩個記錄表。雄辯的表關係

角色

Administrator 
Manager 
Employee 

用戶

User 1 
User 2 
User 3 

現在我想創建這兩個表之間的關係,在這種情況下,每個用戶只能有一個角色,但我如何表達這種關係?

更具體的是,用戶行在表中只能有一個角色或users表作爲一個整體嗎?

如果用戶表作爲一個整體只能有一個角色,然後在一個情況下用戶1用戶2都是管理員會的關係則成爲多對多

+0

這是在Laravel? –

+0

是的,請取悅。 – user3718908

回答

1

你可以通過查看在Laravel /口才關係的文件開始:http://laravel.com/docs/5.1/eloquent-relationships

你的班會是這個樣子:

class User extends Model 
{ 
    public function role() 
    { 
     return $this->hasOne('App\Role'); 
    } 
} 

class Role extends Model 
{ 
} 

這意味着每個User有一個Role - 它不」防止相同的角色從屬於多個用戶。

1

我似乎會成爲。

榜樣

public function users() 
{ 
    return $this->hasMany('App\User'); 
} 

用戶模型

public function role() 
{ 
    return $this->belongsTo('App\Role'); 
} 

這樣的手段,一個角色可以有很多的用戶和用戶所屬的作用。

因此User1和User2都可以是管理員。關於關係的其他信息,請查看 laracast

1

我認爲,在角色 - 用戶reations中使用ManyToMany會更好,因爲如果現在想爲一個用戶使用一個角色,將來可能需要爲用戶提供多個角色給用戶。此外,ManyToMany並不比一對多更慢,但它更有力的決定。

榜樣

​​

用戶模型

public function role() 
{ 
    return $this->belongsToMany('App\Role'); 
}