读书人

组织结构与权限模型设计(1)

发布时间: 2012-09-13 09:51:53 作者: rapoo

组织结构与权限模型设计(一)
?

图一 用户-权限-角色关系图

?

?

其中,角色与权限,用户与角色,均是多对多的关系,即一个角色包括多个权限,而一个权限可以属于多个角色共有;用户与角色的关系与此类似。

而对于部门组织结构这个维度来说,前面提到,还涉及到部门和职位两个业务实体。一个部门包括多个用户,而一个用户可以同时属于多个部门(兼职的情况),故两者的关系是多对多。一个部门通常会包含多个职位,而每个部门的职位一般来说是不一样的,比如开发部和行政部的人员,职位肯定是不一样的,一个是软件工程师,另一个可能是行政助理,故两者之间的关系是一对多,即一个部门包含多个职位,而一个职位只属于一个部门;由于用户可以同时隶属于多个部门,故可能会同时兼任多个职位,而一个职位下面通常也会有多个用户,故两者之间是多对多的关系。由此,形成了如下的关系图,其中双向箭头代表多对多关系,单项箭头代表一对多关系:

组织结构与权限模型设计(1)?

图二 部门组织权限模型

以上只是从部门组织维度描述权限模型,在项目组织的维度,同样也需要关联用户、权限和角色。三者的关联与图一所示的完全一致,但是这里需要考虑一个问题:比如有一个叫做项目经理的角色,他具备一系列操作权限,把这个角色分别赋给了张三和李四,张三在项目一,李四在项目二,那么张三是否能去操作李四的项目二呢?当然不能!这里就涉及到一个领域的概念,项目经理这个角色只有在与具体项目绑定了以后才有意义,并且绑定后,项目经理就只能操作本项目的数据,而不能去操作其它项目的数据。这个绑定的项目就是项目经理所能操作的领域。部门经理与此类似,虽然各个部门的部门经理操作功能差不多,但是能操作的数据范围仅限于本部门。

为了清晰,我们对角色进行了分类,分成了三类:项目级角色、部门级角色、系统级角色,它们针对的领域分别是项目、部门、系统。

?

总结

在本方案中,职位只是作为组织结构中人员的一个标签,在系统中没有特殊的含义,也不与操作权限相关,只有角色才与操作权限相关。用户通过赋予其角色,间接赋予了其操作系统中相应功能的权限。

读书人网 >软件架构设计

热点推荐