我目前正在将Adjacency List Model
与我的SQL数据库中的层次结构数据一起使用,并且打算将其更改为Nested Set Model
,以消除具有多个级别时的递归处理。
此数据用于表示一棵树,其中填充了我们要表示并在系统其他部分中使用的高级对象。我们希望使用它来增加数据的完整性,通用定义等。.我们允许用户在受控的用户界面中向现有对象添加新对象,新子代,并四处移动内容以构建-->
对我们的数据世界的真实完整的了解。
问题:
我们想跟踪(用point in time
)在哪里和什么地方
更改之前的数据。我们希望能够产生报告
关于什么是数据以及现在是什么。
现在,要做到这一点,我们使用的是Chronological Table
只是充满了由相同对象组成的新条目
不同的数据,开始日期和结束日期。所以每次一个对象
(节点)被移到新的父节点下,其数据已更改(例如
说明,名称等),我们在表中添加了一个新条目。就这样
桌子将非常大,并且可能包含
冗余..
为什么:
我不确定我是否有冗余和大量数据 按时间顺序排列表格是一种有效的方法。
你们以前必须处理过这类数据吗?你是做什么的 做?你觉得呢?
我想知道是否可以通过其他方式实现此目标?有没有更好的方法来管理随时间变化的数据?
[编辑]
示例:
每个节点都有一组列(大约20个)(属性),可用于帮助人们进行定义,帮助文本,父项,排序,甚至只是节点本身的名称。
因此,我需要跟踪该数据,我需要能够知道它在更改位置之前在层次结构中的位置,在此之前我需要知道其名称,我需要知道该节点上的所有内容。更改后,我需要为同一节点添加一个具有新有效开始日期的新条目,但是如果不更改,所有数据将重复。因此,如果更改了父级,则父级引用会更新,但其他所有内容都是多余的。
年代表
因此,ID
是按时间顺序的唯一ID,UID
是对象本身的唯一ID。我们还计划将节点的所有文本值添加到时间表中。
因此,想象一下,如果对象(UID)15像1000次更改,1000个新条目那样变化了5年。