V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
tctc4869
V2EX  ›  程序员

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

  •  
  •   tctc4869 · 117 天前 · 906 次点击
    这是一个创建于 117 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

    第 1 条附言  ·  116 天前
    如果部门与用户关联,用户数据记录唯一性还算比较简单一点,如果一个用户可以属于多个部门。那会有更麻烦的复杂情况

    比如出现这样一种情况,即一个用户是某个部门的领导,同时该用户在另外一个部门也有关联,但不是另外一个部门的领导,那么问题来了,如果通过通过该用户查询它在同一个部门的上级,那么应该查哪个部门?
    8 条回复    2021-08-11 23:45:30 +08:00
    DreamSpace
        1
    DreamSpace  
       116 天前 via Android
    维护一颗上下级树,上下级和部门没有直接关系,最好独立维护
    tctc4869
        2
    tctc4869  
    OP
       116 天前
    @DreamSpace 新建立一个树形表,来确定领导用户之间的级别关系?
    saulshao
        3
    saulshao  
       116 天前
    @tctc4869 #2 是的,系统设计最重要的思路就是当你觉得有困难,就提供一个界面给用户维护它。
    tctc4869
        4
    tctc4869  
    OP
       116 天前
    @saulshao 关键的是,你怎么在系统中标识一个部门的领导?要在系统中通过部门 id 查询部门的领导信息

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

    部门一般是按职能划分的,但是领导有可能按业务线去实际管理,这是造成组织架构混乱的客观原因之一。
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2311 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 12:05 · PVG 20:05 · LAX 04:05 · JFK 07:05
    ♥ Do have faith in what you're doing.