【发布时间】:2021-08-13 18:23:28
【问题描述】:
我正在开展一个项目,该项目处理与招聘相关的层级分层数据。场景如下:
- A 雇用 B。B 现在是 A 的第 1 层
- B 雇用 C。C 现在是 A 的第 2 层,B 的第 1 层
- C 雇用 D。D 现在是 A 的第 3 层、B 的第 2 层和 C 的第 1 层
- D 雇用 E。E 现在是 A 的第 4 层、B 的第 3 层、C 的第 2 层和 D 的第 1 层。
- B 雇佣了 F。F 现在是 A 的第 2 层,B 的第 1 层
- 删除层级中的某个人不会使任何人上移,这意味着层级结构在删除后保持不变
我将使用他们的等级来分配特定的百分比,以将它们全部指定和总计。在 MySQL 8+ 中解决这个问题的最佳方法是什么,尤其是在引入 CTE 时?我正在考虑沿袭列/路径枚举,因为我过去在 SQL Server 中使用 hierarchyid 做过类似的事情,但我想听听您对 MySQL8+ 中最佳实践/方法的看法,因为我也想要一个如果可能的话,作为参照完整性的选项。
【问题讨论】:
-
哪个版本的 MySQL? 8.0 具有用于处理分层数据的递归 CTE。
-
我不想成为那个人......但我说“..MySQL 8+ 尤其是引入了 CTE?”并在我最后的声明中再次提到了 MySQL8+,哈哈。您对递归 CTE 的实现想法是否与下面列出的 The Impaler 相同?
标签: mysql sql database-design hierarchical-data