gpt4 book ai didi

sql - 在数据库中存储树数据的最佳实践

转载 作者:行者123 更新时间:2023-12-04 20:40:02 25 4
gpt4 key购买 nike

我认为问题的典型形式是你有员工,员工有经理,所以经理有经理,除非他是 CEO。

那么如何存储数据呢?解决方案 1:似乎员工表可以有 manager_id 或者您可以有一个employee_manager 表(这样您可以有多个或零个经理)。

有些人说解决方案 1 是个坏主意,因为 SQL 不支持递归,并且没有查询可以找到员工之上的所有经理。这些人有不同的想法(比如员工有一份经理名单),但他们似乎都包含一堆非常难以维护的非标准化数据。

那么大家觉得呢?

最佳答案

我同意其他人的观点。递归可用。

我不会将 manager_id 放在 emp 表中(尽管有 SCOTT/TIGER 古老的智慧)。现实世界无时无刻不在打破这个商业规则,而且没有很好的规范化。

请考虑一个 person_to_person 类型的链接表,其中两个人在某个时间段内以某个角色相互关联...例如,从 1 月到 3 月,person1 与 person2 作为经理相关。这使您可以非常灵活地将人员分配到项目、部门、任意组,即使在某些时间点有多个经理也是如此。

还要考虑人员与部门的关系是相似的——人们可能同时与多个部门以微妙的方式相关。

关于sql - 在数据库中存储树数据的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7959877/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com