用户与部门关联,在同一个部门里,会分出领导级用户与非领导级用户。那么如何较好地确定同一个部门中的用户领导关系?
比如便于查询一个部门中的领导相关的信息。例如通过部门 id,查询出这个部门里的领导级别最低级的用户 id,然后通过这个领导用户 id,查询出他所在部门的上一级领导的用户 id (如果查不出来,就表示他是这个部门的最高领导)。
简单的方式是,用户与部门,建立一个中间表,该表除了带用户 id 和部门 id 字段,还待一个 int 字段,为 null 或为 0 表示非领导用户,非 null 表示领导用户。感觉太简单了一点,一个表 4 个字段搞定(主键 id,两个外键,一个领导级别字段),不知道各位看出了什么问题。
其他的方式,我也稍微想了一下?通过角色?通过岗位?角色数据和岗位数据可能会被任意编辑,用这些的话,难道要定死一些数据不能动吗?
不知道各位的建议是什么,各位做过这类的话,你们是怎么确定同一个部门的用户领导关系的?
1
DreamSpace 2021-08-10 20:09:51 +08:00 via Android
维护一颗上下级树,上下级和部门没有直接关系,最好独立维护
|
2
tctc4869 OP @DreamSpace 新建立一个树形表,来确定领导用户之间的级别关系?
|
4
tctc4869 OP @saulshao 关键的是,你怎么在系统中标识一个部门的领导?要在系统中通过部门 id 查询部门的领导信息
新增一个树形实体数据,令他它与用户与部门关联?通过 pid 和 level 字段确定级别?或者说用个树形实体结构,当成用户与部门的关联中间表吗?这个表至少有 id,pid,部门 id,用户 id,type (员工或领导)? |
5
NewYear 2021-08-11 09:34:02 +08:00
用户和部门问题多多,在审批流程这一块经常遇到
1.谁与领导部门同级,谁决定 2.是别人部门的领导但是在自己部门不是领导。 3.新来了一个总监,说要和同部门的经理审批权限相同,“经过他的单都要经过我”(你把经理干完的活又干一遍,那你为什么不开除这个经理) 4.与领导部门同级的手下,经过同部门 A 领导,不经过同部门 B 领导,或者反过来。 |
6
tctc4869 OP @DreamSpace 有个很关键的问题,你怎么标识一个部门的领导?至少你得通过部门 id 查询部门的领导用户的信息?
|
7
cyrivlclth 2021-08-11 17:47:24 +08:00
用户部门中间表有啥问题?不符合你的需求吗?
|
8
DreamSpace 2021-08-11 23:45:30 +08:00 via Android
@tctc4869 组织架构可以与上下级完全无关。
这样组织架构完全只是用于展示的,走审批流程全是查的上下级关系树。 这么设计主要是与公司领导和人事的管理习惯有关,公司的部分领导存在权利交叉,根据组织架构树并不好去安排。 比如: 现有三位同级领导 A,B,C 三个同级部门 1,2,3 A 统管部门 1 和部门 2-3,展示在部门 1 和部门 2-3 中 B 统管部门 2 ( 2-3 除外)部门 3-1,展示在部门 2 和部门 3-1 中 C 统管部门 3 ( 3-1 除外),展示在部门 3 中 部门一般是按职能划分的,但是领导有可能按业务线去实际管理,这是造成组织架构混乱的客观原因之一。 |