基本思路如下:
------------------------------------
部门表
-----------
DepartID      --部门编号
DepartName    --部门名称
...
用户表
-----------
UserID        --用户编号
UserName      --用户名称
DepartID      --归属部门
...
权限表:
-----------
PowerID       --权限编号
PowerDesc     --权限描述
...
角色表:
-----------
RoleID        --角色编号
RoleName      --角色名称
RoleDesc      --角色描述
IsDepartRole  --是否是与部门相关的角色[用于针对部门管理员的权限判定]
...
角色权限表:
-----------
RoleID        --角色编号
PowerID       --权限编号
...
用户角色表:
-----------
UserID        --用户编号
RoleID        --角色编号
...

解决方案 »

  1.   

    部门表
    -----------
    DepartID      --部门编号[PK]
    DepartName    --部门名称
    ...
    用户表
    -----------
    UserID        --用户编号[PK]
    UserName      --用户名称
    DepartID      --归属部门[FK]
    ...
    权限表:
    -----------
    PowerID       --权限编号[PK]
    PowerDesc     --权限描述
    RelatePage    --关联页面
    ...
    角色表:
    -----------
    RoleID        --角色编号[PK]
    RoleName      --角色名称
    RoleDesc      --角色描述
    IsDepartRole  --是否是与部门相关的角色[用于针对部门管理员的权限判定]
    ...
    角色权限表:
    -----------
    RoleID        --角色编号[FK]
    PowerID       --权限编号[FK]
    ...
    用户角色表:
    -----------
    UserID        --用户编号[FK]
    RoleID        --角色编号[FK]
    ...补充说明:
    ----------------------------------------------------------------------
    权限的约束可以从两个方面实现:
    1、根据当前登录操作页面的列表,页面的路径和名称等信息在权限列表中包括
       在权限列表菜单中列出相应的权限链接,并在每个页面都进行权限判定2、在页面上通过按钮/链接体现权限时,则根据具体的界面分别设置
      

  2.   

    你是写asp.net的吧,我也是!多多交流啊
      

  3.   

    如果我增加了一个部门那么权限也一定会曾加的!而添加论坛的时候也是一样!
    -------------------------------------------------------------------------
    部门的权限可以通过一个自动继承的方式来实现,for example:比如部门有论坛,则论坛的数据在论坛信息表中记录如下:
    -------------------------------
    ForumID       --论坛编号
    ForumName     --论坛名称
    IsDapart      --是否与部门关联
    RalateDepart  --论坛关联部门
    如果与部门相关,则在页面上判断试图访问的用户是否归属该部门或者具备更高的权限
    而用户并不需要直接指定访问某个具体编号的论坛,只需要权限中设置可访问本部门论坛即可