开发平台之组织架构设计

上一篇《开发平台之权限设计》

背景

企业应用无论大小,必然有组织架构的功能刚需。小到公司只有10几号人的单一组织,大到几百上千的集团化公司的多组织集团架构,系统应用的设计如何支撑着这种大小规模不同的组织架构呢?

设计而不接实际业务之气,设计的再好仍是空谈。–王小七

需求

1、组织架构除了法人组织架构外,还需要业务型的架构。—多维度组织架构

2、集团发展迅猛,组织架构调整频繁,想看往年某个时间点的组织架构。—组织架构多版本追溯

3、组织架构对业务数据有隔离作用。—组织架构的数据权限

4、某个部门需要领导人的概念。 —组织特权人

5、组织的岗位与系统权限会有所关联。 —岗位权限

6、除了领导人外,可能涵盖了管辖的概念。—组织架构的数据权限

抽象与设计

核心UML

开发平台之组织架构设计_第1张图片

Unit

主要用来存放组织单元。

UnitType

主要用来存放组织单元类型,包含:集团、公司、事业部等。

Dimension和DimensionUnit

组织维度,主要用来区别组织所在的不同维度,不同的树的展现形式。

Position

主要存放组织岗位信息。

User

主要是用户表。

核心逻辑

多维度组织架构

将组织架构的树关系存放在DimensionUnit表中,利用维度(Dimension)+维度组织关系(DimensionUnit)就可以成功构建不同的维度组织架构数。

组织架构多版本追溯

维度组织关系表中存放两个关键字段【组织生效时间】和【组织失效时间】,通过特定的时间范围来检索节点,找到那些节点的【生效时间】且【失效时间】不在这个区间氛围,从而可以获取完整架构树。

数据权限、特权人、岗位权限

组织权限的内容,将移到权限设计来特别讲解。

你可能感兴趣的:(开发平台之组织架构设计)