用户层次结构逻辑

时间:2010-05-26 07:13:49

标签: sql-server

我正在使用SQLServer 2008编写用户安全模块,因此需要相应地设计数据库。

我正式使用带有UserID,Username和ParentID的Userinfo表来构建一个递归和填充树来表示层次结构,但现在我有以下标准需要开发。

我现在有USERS,ADMINISTRATORS和GROUPS。

用户层次结构中的每个节点都是用户,管理员或组。

用户

对我的应用程序具有登录访问权限的人

管理员

可能还管理其所有子用户帐户(及其子级等)的用户这可能包括创建新用户并为这些用户分配权限。用户结构中的管理员数量没有限制。我去的层次结构越高,管理员就有更多的子帐户需要管理,包括其他子管理员。

可以将用户帐户指定为一个组。这将是一个帐户,用于将一个或多个用户组合在一起,以便他们可以作为一个单元进行管理。但没有人可以使用组帐户登录我的应用程序。

这就是我想要创建结构的方式

                       Super Administrator
                         administrator
      -------------------------------------------------------------
      |                         |                                  |
   Manager A                 Manager B                        Manager C
(adminstrator)            (administrator)                  (administrator)
                                |
               -----------------------------------------
               |                |                      |
         Employee A         Employee B            Sales Employees
          (User)               (User)               (Group)
                                                       |
                                             ------------------------
                                             |         |            |
                                         Emp C       Emp D        Emp E
                                        (User)       (User)       (User)

现在如何构建表结构来实现这一目标。我是否需要创建Users表以及Group表或什么?

请指导我真的很感激。

1 个答案:

答案 0 :(得分:0)

我稍后可能会写一个更完整的答案,但我首先要指出的是,用户确实是管理员的特例,特别是没有子用户的管理员。我可能会考虑到这一点设计用户。