2014-10-01 78 views
1

到目前爲止,我有以下SQL Server數據庫和一個表。SQL Server數據庫設計用戶,組,角色和成員

---------------- 
|Users   | 
---------------- 
| UserId PK | 
|    | 
| Other fields | 
---------------- 

我需要一些更多的表添加到它是不是一個問題,但是這是我們的目標:

---------------- ---------------- ---------------- ---------------- 
|Users   | |Roles   | | Teams  | | Groups  | 
---------------- ---------------- ---------------- ---------------- 
| UserId PK | | RoleId PK | | TeamId PK | | GroupId PK | 
|    | |    | |    | |    | 
| Other fields | | Other fields | | Other fields | | Other fields | 
---------------- ---------------- ---------------- ---------------- 

我需要達到如下:

  • 我有X的用戶數量

    • 用戶1
    • 用戶2
    • 用戶X
  • 我有3個角色,只爲所有用戶在所有的團隊使用和團體

    • 聯繫
    • 會員
    • 遊客
  • 一用戶可以創建隊伍的X量

    • TEAM1
    • 的Team2
    • TeamX
  • 一個用戶可以創建羣組

    • 組別1
    • 組2
    • 的X量
    • GroupX
  • 團組可分配有不同的角色(管理員,會員,遊客)用戶

  • 一個用戶可以屬於一個或多個團隊或羣體

  • 一用戶可以屬於一個或多個角色

我很難理解這些表之間的關係。

以下是我根據@Robertas Valeika的回答設法實現的。

http://i58.tinypic.com/3588h0i.png

回答

2

您需要3張表。 UsersRoles UsersLolesGroups UsersRolesTeams。

關係:

UsersRoles - UsersRolesGroups, 組 - UsersRolesGroups

UsersRoles - UsersRolesTeams, 團隊 - UsersRolesTeams

用戶 - UsersRoles, 角色 - UsersRoles。

然後將FK添加到組和團隊的用戶,以標識組和團隊的創建者。

+0

謝謝你的評論。我設法做到了。 http://i57.tinypic.com/2r2c51i.png你可以檢查一切是否正常,關係(1 .. *,* .. * ...等) – 2014-10-01 19:04:16

+0

每張表必須有一列作爲PK一個如果需要)。和關係團隊 - UserRolesTeams(一對多)與組和UserRoles相同 - UserRolesTeams(一對多)。我沒有看到關於團隊和團隊的創建者專欄。 – 2014-10-01 19:15:35

+0

我做了最終版本:http://i58.tinypic.com/3588h0i.png – 2014-10-01 21:01:37

相關問題