2017-08-23 95 views
-1

我想爲我的SQL數據庫設計架構,其中用戶可以具有多個角色,如管理員,測試人員和開發人員,他們將具有模塊的可訪問性(測試,開發,性能)他們的角色。 我試圖設計三個表第一個用戶,其中用戶將有id和它的角色id,第二個角色,第三個將是模塊,它將擁有用戶和角色的外鍵,它將在其中分配權限到那個角色。對單個用戶的多個角色

但是,當一個用戶擁有多個角色

回答

0

失敗似乎是一個基本的許多一對多的關係,我 - 所以你需要三個表:
兩個Entity表和一個結合表。
你的情況應該有一個用戶表,一個角色表和userToRole表。
模塊/角色通常也是多對多的關係 - 因爲許多角色可能連接到單個模塊,並且許多模塊可能連接到單個角色。

基本實現可能是這樣的:

tblUser 
(
    User_id int primary key, 
    -- Other user related columns 
) 

tblRole 
{ 
    Role_Id int primary key, 
    -- Other role related columns 
} 

tblUserToRole 
{ 
    URT_User int Foreign key to tblUser, 
    URT_Role int Foreign key to tblRole, 
    Primary key (URT_User, URT_Role) 
} 
+0

但如果用戶有多個角色將它不會有多個userToRole IDS –

+0

如果用戶將有多行也將在UserToRole表中多條記錄,每個都有不同的角色ID。這就是關係數據庫中的多對多關係。 –

相關問題