1.概要

在设计组织架构时,一般的情况我们会设计 这样的表,比如用户和角色,用户和部门的关系表。比如USER_ROLE,USER_ORG,这样对于一个特定的产品来讲时没有问题的,比如OA系统,比如项目管理系统,他的需求是确定的。但是对于JPAAS这样的平台,他是需要扩展需求的,如果每次加一种关系那么都需要开发代码,这个系统就扩展性就比较差。

2.实现方法

在平台中将用户和角色,用户和部门这些关联关系,抽像成了用户与用户,用户与组,组和组的关系。
我们增加了关系定义表,我们可以在这个表中定义:

  1. 用户与用户的关系
  2. 用户和组的关系
  3. 组和组的关系

通过关系我们可以实现:

2.1 用户关系

我们可以实现,在人员定义中,可以通过人与人之间的关系定义上下级关系。

比如:

  1. 刘备
  2. 关羽
  3. 关平
  4. 张飞
  5. 张保
  6. 诸葛

2.2 用户与组的关系定义

在一般情况下,我们定义用户和组的关系是从属关系。这个关系默认是每个维度都有的。我们还可以定义比如 一个负责人的关系。我们可以通过这个关系 就可以找到某个部门的负责人。

在定义关系的时候:
某个关系可以从属于某一个维度。
比如:负责人这个关系可以从属于行政。但是职务和角色维度没有这样的关系定义。

2.3 用户组的关系

这个表示为组和组的关系,最常见为岗位,在平台中我们可以这样定义岗位。当前方为部门,关联方为职务。
比如:在财务部门 建立一个 职务为出纳的关系。然后我们可以在这个关系中添加人员。

3. 表设计

3.1 关系表定义(OS_REL_TYPE)

在这张表中我们定义了关系类型,通过关系类型 (用户关系,用户和组关系,用户组和用户组关系定义)

3.2 关系数据表(OS_REL_INST)

这个表将平台中所有的关联关系数据存放在这张表中,

3.1 用户与用户关系数据

我们在界面上定义为:

在数据库表的数据存储为:

当前方为上级ID,关联方为下属ID。

3.2 用户和用户组关系

比如我们定义了一个组负责人的关系。

我们在组织管理处。

在这里我们可以看到 组负责人只出现在行政维度这里。

我们可以看看相关的数据:

在表中的数据如下:

3.3 用户组的关系定义

这个比如在行政和职务之间创建关系。这个关系一般叫岗位。

添加关系:

选择关联方。

添加完成后,我们可以看一下表中的数据。

在添加完关系后,我们可以在这个关系中添加人员。

数据是这样的:

1.先添加关系,这个时候我们得到一个关系实例ID。
2.人员和关系实例ID进行关联,比如 上面添加的 财务-主任关系,我们用这个实例ID 作为当前方,用户ID作为关联方。

文档更新时间: 2020-09-28 09:37   作者:zyg