在SQL数据库中管理时间点数据

时间:2018-10-17 16:06:04

标签: sql sql-server database

我目前正在将Adjacency List Model与我的SQL数据库中的层次结构数据一起使用,并且打算将其更改为Nested Set Model,以消除具有多个级别时的递归处理。

此数据用于表示一棵树,其中填充了我们要表示并在系统其他部分中使用的高级对象。我们希望使用它来增加数据的完整性,通用定义等。.我们允许用户在受控的用户界面中向现有对象添加新对象,新子代,并四处移动内容以构建-->

对我们的数据世界的真实完整的了解

  • 问题:

    我们想跟踪(用point in time)在哪里和什么地方 更改之前的数据。我们希望能够产生报告 关于什么是数据以及现在是什么。

    现在,要做到这一点,我们使用的是Chronological Table 只是充满了由相同对象组成的新条目 不同的数据,开始日期和结束日期。所以每次一个对象 (节点)被移到新的父节点下,其数据已更改(例如 说明,名称等),我们在表中添加了一个新条目。就这样 桌子将非常大,并且可能包含 冗余..

  • 为什么:

    我不确定我是否有冗余和大量数据 按时间顺序排列表格是一种有效的方法。

    你们以前必须处理过这类数据吗?你是做什么的 做?你觉得呢?

  

我想知道是否可以通过其他方式实现此目标?有没有更好的方法来管理随时间变化的数据?

[编辑]

示例:

每个节点都有一组列(大约20个)(属性),可用于帮助人们进行定义,帮助文本,父项,排序,甚至只是节点本身的名称。

因此,我需要跟踪该数据,我需要能够知道它在更改位置之前在层次结构中的位置,在此之前我需要知道其名称,我需要知道该节点上的所有内容。更改后,我需要为同一节点添加一个具有新有效开始日期的新条目,但是如果不更改,所有数据将重复。因此,如果更改了父级,则父级引用会更新,但其他所有内容都是多余的。

年代表

Chronological Table 因此,ID是按时间顺序的唯一ID,UID是对象本身的唯一ID。我们还计划将节点的所有文本值添加到时间表中。

因此,想象一下,如果对象(UID)15像1000次更改,1000个新条目那样变化了5年。

0 个答案:

没有答案