benq 请教一个待实现用户,组织,角色,模块,权限之间的关联关系的问题

项目名称:用户权限平台
 这是偶最近在忙的工作.在VO(heibernate)层处理他门之间的关联关系的部分感觉很棘手.
 在处理中,组织与用户是多对对的关联,用户与角色也是多对多的关联,在处理角色与模块,权限(目前只有三种权限:读,写,完全控制)上的关联 我目前想了两种方案:
 第一种方案:在角色与模块,权限之间建立一个代理中间(Proxy)对象间接的关联起来,
即:角色与Proxy是一对多的双向关联
  而 模块与Proxy也是一对多的双向关联 权限与Proxy也是一对多的双向关联
而且,模块和权限不存在任何关联.这样的构架,在对角色部分进行CRUD时,给整个操作带来的是更加烦琐,界面不够友好.特别是在增加一个角色的时候需要读取所有的模块和权限信息,尔后再进行组合.
 第二种方案:同样在角色与模块,权限之间建立一个代理中间(Proxy2)对象间接的关联起来,
即:角色与Proxy2是多对多的关联关系 而 模块与Proxy2是一对多的双向关联 权限与Proxy2也是一对多的双向关联
而且,模块和权限不存在任何关联.这样的设计在操作也是有些麻烦,可在实现中好是稍微好实现些.
  现在 正为怎样处理这样的问题而 着急
  多谢! 给个咨询

 
[该贴被yangtao309于2007年06月26日 09:21修改过]
[该贴被yangtao309于2007年06月26日 09:21修改过]

首先引入RBAC是毋庸置疑的,Role角色已经是用户/组织和模块权限之间的Proxy,中间者,也是解耦者。

关键必须引入一个树形结构,用户User和组织group之间是一个树形结构,用户/组织和角色的对应关系可自由指定,指定后关系持久在数据库种。

Role又是模块权限的代表,模块和权限的组合就是一个角色。比如对A模块的读和写再加上对B模块的读组成角色“XX”。

建议不从一对多或多对多等关系角色来考虑它们,否则容易陷入蜘蛛网不能自拔。

不知对你是否有帮助?

我是想试着,不以数据库为设计的基础,在项目中灵活运用OO思想.既然用到持久层框架。我就的从具体VO开始.
 我门也准备用树组件xloadtree.可比较设计第一步就是理清楚对象之间的关系.至于给提到的从树型结构方面考虑.我不太清楚是该如何去想那方面考虑.
 我个人认为,设计架构 应该就自己项目的各个方面上考虑.希望给讲解一下,如何就树型结构方面考虑.平台的设计.
 还就是 如何不再直接考虑数据库方面的东西,先从VO开始,从VO到底层数据库的一个开发过程。给我灌一灌这方面的思想。谢谢 benq大哥