请考虑以下情形:
我们有一个执行某种计算的函数(让我们称之为current_fee
)。
在那些计算中,我们还使用一个变量(比如说fee_table
)在给定时间具有一定值(我们从辅助表中获取该变量的值 - current_fee
)。
现在fee_table
可以在4个月内保持不变,然后它会改变并获得一个新值,依此类推。当然我想知道目前的费用,但也应该能够找到“活跃”的费用。几天,几个月,几年......
因此,组织create table fee_table (
id number,
valid_from date,
valid_to date,
fee number
)
的一种方法是
select fee into current_fee form
fee_table where trunc(sysdate) between valid_from and valid_to;
然后在任何时候 - 如果我想得到当前的费用,我会:
fee_table
我不喜欢关于上述解决方案的问题是,很容易在valid_from
中创建不一致的条目 - 例如:
- 重叠时间段(valid_to
- (1/1/2012 - 1/2/2012) and (15/1/2012-5/2012)
),例如([1/1/2012-1/2/2012],[1/4/2012-1/5/2012])
- 当前期间没有进入
- 在这些时期之间的例如$config['base_url'] = base_url().'index.php/blog';
等。
有人能建议更好的方法来处理这种情况吗? 或者可能是 - 如果我们坚持上述情况 - 在桌面上采取某种约束,检查,触发等以避免描述的不一致?
感谢。
答案 0 :(得分:0)
感谢上述所有评论。因此基于props.put(ConsumerConfig.AUTO_OFFSET_RESET_CONFIG, "earliest");
和@Alex Pool
。
我倾向于以下解决方案:
表格
@William Robertson
数据:
create table fee_table (
id number unique,
valid_from date unique,
fee number
)
选择:
insert into fee_table_todel(tid, valid_from,fee) values (1,to_date('1/1/2014','dd/mm/rrrr'), 30.5);
insert into fee_table_todel(tid, valid_from,fee) values (2,to_date('3/2/2014','dd/mm/rrrr'), 20.5);
insert into fee_table_todel(tid, valid_from,fee) values (3,to_date('4/4/2014','dd/mm/rrrr'), 10);