0

我有一个简单的树形结构:经理/团队负责人/团队成员。但是这种结构在时间上是可变的:团队成员 1 是团队 1 的成员,例如从 (YYYY.MM.DD) 2013.01.01 到 2013.03.31 以及之后的 2013.04.01 是团队 2 的成员。以及可能的用例是将空洞团队(与成员)从一位经理转移到另一位经理。我必须记住每个时间快照中的组织结构。

在 oracle 数据库(11gR2)中实现此功能的最佳模型是什么?可能的用例是:在每个级别上添加、删除一个人以及在每个级别上移动一个人/组。当然还有显示结构,显示每个级别的老板,显示每个级别的成员,显示一段时间内的成员历史。

此致,

亚采克

4

1 回答 1

0

Oracle 有时间域扩展,尽管它们非常慢并且在我的经验中有点笨拙。在他们的网站上查看 Oracle 临时支持。

它的作用很简单,就是向主键添加日期范围。此日期范围是有效范围。当事实发生变化时,您可以终止现有的行,这可以通过有一个遥远的未来日期(9999 年 12 月 31 日)、通过输入 now() 的结束日期或任何您想要的日期来检测,并添加一个新的行,它的开始日期为 now(),结束日期在很远的将来(9999 年 12 月 31 日)。

查询时,始终查找感兴趣日期大于等于开始日期且早于结束日期的行。

这适用于任何数据结构。

Where you wish to have simple queries on the current date, add a view which selects appropriately.

祝你好运!

于 2013-09-04T16:59:26.537 回答