HOW TO - 基于1个公共表映射,SQL连接到2个表中的GET EXTRA行

时间:2014-05-21 02:54:12

标签: sql-server-2008-r2

我有以下表格

UserRights - This table contains extra role selected for the user has been defined. 
RoleRights - Default roles defined by the users
UserRole - To map the user and their default role
Roles - Role name (ID = Primary Key)
UserMaster - Primary User table (ID = Primary Key)
ModuleMaster - For Module (ID = Primary Key)
FunctionMaster - For Function (ID = Primary Key, ModuleID = FK)
SubFunctionMaster - For SubFunction (ID = Primary Key, FunctionID = FK)

条件:用户必须是ROLE的一部分,只有在需要时才能选择额外的角色。

| UserMaster |
|------------|
| ID (PK)    |


| UserRights |
|---------------------|
| UserID (FK)         |
| ModuleID  (FK)      |
| FunctionID (FK)     |
| SubFunctionID (FK)  |


| RoleRights    |
|---------------------|
| RoleID (FK)         |
| ModuleID  (FK)      |
| FunctionID (FK)     |
| SubFunctionID (FK)  |


| UserRole      |
|---------------|
| UserID (FK)   |
| RoleID (FK)   |

现在,在表 UserRights 中,我们在 RoleRights 表格中提供了合并的数据结果集,并为该特定内容提供了另外的 SubFunctionID 授权用户。

我们只需列出所有用户在表 UserRights 中另外提供的行,并跳过 UserRights 中可用的匹配行RoleRights ,根据表格 UserRole RoleRights UserRights 之间的映射,为其所属的特定用户所扮演的角色强>

0 个答案:

没有答案