问题归纳如下:
 1、现有N张表,其中有直接关联的,有间接关联的;(a~z 编号 代表表缩写 )
      
      一、类型表
      
      a、Group表( ID, Name, ParentID); ParentID也就是 Group表的 ID; 
      (Group可以属于Group)   //分组表
         
      b、BigClass( ID, Name, GroupID ); GroupID就是 Group表的 ID;
      ( BigClass 属于Group ) //大类表
      
      c、SmallClass( ID, Name, BigClassID); BigClassID就是BigClass表的 ID );
      ( SmallClass 属于 BigClass );//小类表
      
      二、数据表
      
      d、Device( ID, Name, P1,P2,P3 , SmallClassID ); 
         SmallClassID-->SmallClass.ID //设备表
      
      e、SubDev1( ID, Name, SD1, DeviceID );  
         DeviceID --> Device.ID; //子设备1 表
      
      f、SubDev2( ID, Name, SD2, DeviceID ); 
         DeviceID --> Device.ID;  //子设备2 表
      
      依赖关系
       (f,e)-----> d -----> c ------> b -----> a [a-->a];
       
      三、权限表
      
      g、PS_Type( ID, Name );      //权限类型
      
      h、PS ( ID, Name, PST_ID ); 
         PST_ID ---> PS_Type.ID; //具体权限表
      
      j、Usr( ID, Name, PWD );   //用户
      
      k、UsrRole( ID, Name );      //角色
      
      m、UsrToRole( ID, UsrID, RoleID );  
         UsrID---> Usr.ID, RoleID ---> UsrRole.ID; 
            //用户属于角色表,用户 与 角色是 多对多的关于
            
      
      备注: 
         1、权限类型 示例数据
            PS_Type ( ID, Name )
            
            g ( 0, '全局权限' );   --->即 对所有组,大小类型,设备,子设备统一佣有的权限
            g ( 1, '分组权限' );   --->即可以控制 表 a,就是 Group这个表的内容
            g ( 2, '设备权限' );   --->即可以控制 表 d,就是 Device这个表的内容
            g ( 3, '子设备1权限');  --->> e, SubDev1
            g ( 4, '子设备2权限');  --->> f, SubDev1
            
         2、权限示例数据
            PS( ID, Name,   PST_ID );
            h ( 1 , '添加',  1     )   ; //1=分组 添加权限
            h ( 2 , '删除',  1     ) ;   //1=分组 删除权限
            h ( 3 , '修改',  1     ) ;   //1=分组 修改权限
            
            h ( 4 , '防问',  2     ) ; //2=设备 防问权限
            h ( 4 , '删除',  2     ) ;   //2=设备 删除权限
            h ( 4 , '修改',  2     ) ;   //2=设备 修改权限
            ...
            ...
            类似以上的权限,还有包括对 e(SubDev1), f(SubDev2), 
               b(BigClass) c(SmallClass) 的权限的一些数据
      
      
      提问:
         
         1、怎样设计出来权限对应表?
            
            要求:
               a、权限可以是 用户或角色 到 a(分组) 或 b(大类型) 或 
               c(小类型) 或 d(设备) e(子设备1) f(子设备2)
                        
                  提示:   其中 a,b,c,d,e,f 佣有相同的权限,也存在不同的权限;
                        
                        比如:可见 权限,对所有对象都具有的权限,而 X功能 
                     控制 只有 子设备1 才具有的权限
                                                         Y功能 控制 只有 子设备2 才具有的权限
                                                         
               b、权限细分程度,可以具体到 子设备1/子设备2 的具体的某个功能上;
               
                  比如:用户A 有对 A分组下面的 A大类 下面的 A小类 下面的 
                     A设备 下面的 A子设备1 佣有 X功能 的控制权限
                     
                       用户B 没有对 A分组下面的 A大类 下面的 A小类 下面的
                      A设备 下面的 A子设备1 佣有 X功能 的控制权限
               
               c、权限设置方便性
                  举例说明:
                     A分组,下面多个大类型,同时大类型下面又有很多小类型,
                     小类型又包括N多设备,子设备等
                     
                     但是 因为a,b,c,e,d,f权限并不统一,
                     所以设置权限时,(A分组只具有 可见 这个权限 ),只能设置
                      A分组的可见 权限,虽然它下面所有
                        
                        对象都具有可见属性,而对于A分组下面的设备的权限,
                        要一个一个的设置相当麻烦;
                     
                     因为一个分组 包含的相关设备相当多;不可能一个设备
                     一个设备的设置权限;
                     
                     所以:在设置分组时,可以同时设置 设备的权限, 子设备的权限;
                     
                     如: 分组 具有 可见 权限属性, 子设备1 具有 
                     X功能控制 权限属性;
                                            子设备2 具有 Y功能控制 权限属性;
                        现有记录;
                           A分组 , A子设备1,A子设备2; A子设备1和A设备2
                            是属于A分组下面的设备(间接属于,中间还夹着大,小类型)
                           
                           当 对A分组 设置权限时,除了可设置 可见,
                           还同时可以设置 X功能控制,Y功能控制;
                           
                           用户只要对A分组 有 X功能控制权限 ,那么  
                        自动佣有了A子设备1的 X功能控制权限
                           
                           (虽然,对分组来说并没有 X功能这个权限,
                        但是它可以代理设置下面的对象权限)
                     
               
         2、怎么体现出权限的继承关系?
         
          要求:            a、用户 属于 角色 时,自动佣有角色的权限
            
            b、角色 属于 角色 时,自动佣有父角色的权限
            
            c、当 角色 或者 用户 对 分组(Group) 有某些 权限 时
               
               那么他 同时 佣对这个分组下面所有 大类(BigClass),
                  小类(SmallClass),设备,子设备
               
               都佣有相同的权限
            
            d、同时考虑 子设备 或设备 或 大小类 随时可以不使用继承权限;
               比如: A子设备1,B设备1 属于 T设备; 同时继承了 T设备的权限
                     现在可以去掉A子设备1 的继承权限,单独为 A子设备1 设置不同
                     于 T设备的权限;
                     
                  用过WINDOWS 用户权限的人都应该清楚吧,
                  或者 WINDOWS NTFS 文件夹权限, 文件可以不继承文件夹权限,单独设置权限

解决方案 »

  1.   

     问题一两句说不清啊,只好这样写,可是还是很长  要是可以发语音贴就好了,口述+文字的话你们更好理解些
      

  2.   

    我觉得像这种情况,你应该自己先把力所能及的地方设计出来,
    关键的部分拿到这里来请教高手,这样效率可能要高很多,另外,建议把大问题拆分成若干个小问题
    (不要试着挑战大伙的耐性,你写那么长谁有时间一点点帮你分析啊?)
      

  3.   

    原来昨晚那兄弟就是你啊!
      

  4.   

    最好把你最需要解决的地方,发出来,浓缩一下。俗话说:大事化小,小事化了。
      

  5.   

    难得来一回,
    难得看到一个100分的帖子
    更难得回覆的人不多,
    点开一看好长头晕
      

  6.   

    刚才仔细点大概看了一下,说的不对请多包涵:
    感觉就是权限归属之类的设计,
    我想这个应该不是很复杂吧?!
    你可以在网上找找资料先看看,先理出点头绪,实在不会了再来问,