用户与部门关联,有什么合适的方法确定同一个部门中的用户领导级别关系?

2021-08-10 20:03:00 +08:00
 tctc4869

用户与部门关联,在同一个部门里,会分出领导级用户与非领导级用户。那么如何较好地确定同一个部门中的用户领导关系?

比如便于查询一个部门中的领导相关的信息。例如通过部门 id,查询出这个部门里的领导级别最低级的用户 id,然后通过这个领导用户 id,查询出他所在部门的上一级领导的用户 id (如果查不出来,就表示他是这个部门的最高领导)。

简单的方式是,用户与部门,建立一个中间表,该表除了带用户 id 和部门 id 字段,还待一个 int 字段,为 null 或为 0 表示非领导用户,非 null 表示领导用户。感觉太简单了一点,一个表 4 个字段搞定(主键 id,两个外键,一个领导级别字段),不知道各位看出了什么问题。

其他的方式,我也稍微想了一下?通过角色?通过岗位?角色数据和岗位数据可能会被任意编辑,用这些的话,难道要定死一些数据不能动吗?

不知道各位的建议是什么,各位做过这类的话,你们是怎么确定同一个部门的用户领导关系的?

1506 次点击
所在节点    程序员
8 条回复
DreamSpace
2021-08-10 20:09:51 +08:00
维护一颗上下级树,上下级和部门没有直接关系,最好独立维护
tctc4869
2021-08-10 20:39:46 +08:00
@DreamSpace 新建立一个树形表,来确定领导用户之间的级别关系?
saulshao
2021-08-11 08:28:21 +08:00
@tctc4869 #2 是的,系统设计最重要的思路就是当你觉得有困难,就提供一个界面给用户维护它。
tctc4869
2021-08-11 08:45:39 +08:00
@saulshao 关键的是,你怎么在系统中标识一个部门的领导?要在系统中通过部门 id 查询部门的领导信息

新增一个树形实体数据,令他它与用户与部门关联?通过 pid 和 level 字段确定级别?或者说用个树形实体结构,当成用户与部门的关联中间表吗?这个表至少有 id,pid,部门 id,用户 id,type (员工或领导)?
NewYear
2021-08-11 09:34:02 +08:00
用户和部门问题多多,在审批流程这一块经常遇到
1.谁与领导部门同级,谁决定
2.是别人部门的领导但是在自己部门不是领导。
3.新来了一个总监,说要和同部门的经理审批权限相同,“经过他的单都要经过我”(你把经理干完的活又干一遍,那你为什么不开除这个经理)
4.与领导部门同级的手下,经过同部门 A 领导,不经过同部门 B 领导,或者反过来。
tctc4869
2021-08-11 10:19:07 +08:00
@DreamSpace 有个很关键的问题,你怎么标识一个部门的领导?至少你得通过部门 id 查询部门的领导用户的信息?
cyrivlclth
2021-08-11 17:47:24 +08:00
用户部门中间表有啥问题?不符合你的需求吗?
DreamSpace
2021-08-11 23:45:30 +08:00
@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 中

部门一般是按职能划分的,但是领导有可能按业务线去实际管理,这是造成组织架构混乱的客观原因之一。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/794914

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX