我有一个简单的树结构:经理/团队负责人/团队成员。但是这种结构在时间上是可变的:团队成员1是团队1e的成员。 G。从(YYYY.MM.DD)2013.01.01到2013.03.31以及之后的2013.04.01是团队2的成员。可能的用例是将洞团队(有成员)从一个经理移到另一个经理。我必须在每个时间快照中记住组织的结构。
在oracle数据库(11gR2)中实现此功能的最佳模型是什么?可能的用例包括:添加,删除每个级别的人员以及移动每个级别的人员/组。当然还有结构,在每个级别显示一个老板,显示每个级别的成员,显示一段时间内的成员资格。
最诚挚的问候,
亚切克
答案 0 :(得分:0)
Oracle有时域扩展,虽然它们非常慢,但我的经验有点笨拙。看看他们网站上的Oracle时态支持。
它的作用,而不仅仅是,为主键添加日期范围。此日期范围是有效范围。当事实发生变化时,您可以通过输入now()的结束日期或者只要您想要日期,并添加新的日期来终止现有行,这可以通过具有远期日期(9999年12月31日)来检测。 row,其开始日期为now(),结束日期为远期(9999年12月31日)。
查询时,请始终查找感兴趣的日期大于等于开始日期且早于结束日期的行。
这适用于任何数据结构。
如果您希望对当前日期进行简单查询,请添加适当选择的视图。
祝你好运!