Как создать рекурсивную функцию для определения иерархического порядка в MySQL - PullRequest
1 голос
/ 07 мая 2019

У меня есть следующая таблица со списком сотрудников, их именем и ответственным за них сотрудником.(например, IDEmployee 1001 сообщает IDEmployee 1000)

IDEmployee  Name ReportsTo
1000        A    Null
1001        B    1000
1002        c    1001
1003        d    1001
2000        e    null
1004        f    1002
2001        g    2000
2003        h    2000
2004        i    2003
2005        j    2000
1004        k    1003
2006        l    1003
1007        m    2005
2008        n    null
1110        o    2008
2100        p    1110

Уровень иерархии - это значение в иерархии, которое имеет сотрудник.Когда значение равно «null», это означает, что оно имеет самый высокий уровень иерархии, поскольку никакой другой employeeID не находится над ним, назначая ему уровень 1.

И ожидаемый результат состоит в том, что создается таблица «tblHierarchy»со следующими значениями:

IdEmployee  HierarchyLevel
1000        1
1001        2
1002        3
1004        4
1003        2
2006        3
1005        3
2000        1
2001        2
2003        2
2004        3
2005        2
1007        3
2008        1
1100        2
2100        3

Как я могу реализовать функцию в MySQL, которая может быть выполнена, и обновить tblHierarchy со значениями иерархии последних?

...