-1
我想爲我的SQL數據庫設計架構,其中用戶可以具有多個角色,如管理員,測試人員和開發人員,他們將具有模塊的可訪問性(測試,開發,性能)他們的角色。 我試圖設計三個表第一個用戶,其中用戶將有id和它的角色id,第二個角色,第三個將是模塊,它將擁有用戶和角色的外鍵,它將在其中分配權限到那個角色。對單個用戶的多個角色
但是,當一個用戶擁有多個角色
我想爲我的SQL數據庫設計架構,其中用戶可以具有多個角色,如管理員,測試人員和開發人員,他們將具有模塊的可訪問性(測試,開發,性能)他們的角色。 我試圖設計三個表第一個用戶,其中用戶將有id和它的角色id,第二個角色,第三個將是模塊,它將擁有用戶和角色的外鍵,它將在其中分配權限到那個角色。對單個用戶的多個角色
但是,當一個用戶擁有多個角色
失敗似乎是一個基本的許多一對多的關係,我 - 所以你需要三個表:
兩個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)
}
但如果用戶有多個角色將它不會有多個userToRole IDS –
如果用戶將有多行也將在UserToRole表中多條記錄,每個都有不同的角色ID。這就是關係數據庫中的多對多關係。 –