我正在使用MySQL,但是如果有人知道与其他数据库一起使用可解决此问题的简单答案,那么我愿意学习和倾听。
我仍在尝试确定数据库的正确结构,这需要存储员工的层次结构(但每个人只有一个老板)。每次树更改时,我都需要知道它在每个时间点的外观,因为它将在以后的计算中使用。
我的第一个直觉是使用闭合表,因为树不会很深(最大深度为6)。在需要查询祖先/后代的各个方面都将非常容易使用,但是由于我还需要维护此树的历史记录,因此我担心数据的增长速度会太快。
当我们假设一棵小树有60个节点时,对该树的每次更改都会在历史关闭表中生成另一条可能包含200多个记录的插入(因为它不是很深,所以不是n ^ 2),我可以想象这会快速增长数据。该树不会经常更改,而是会出于计算目的而被查询(即使这样,在添加/删除/切换员工时,多棵树也会很快增长)。
所以我的问题是-这真的是在RDBMS中保留层次结构数据历史的最佳方法吗?