假设以下代码有效的系统:
my $class = DatabaseInterfaceModule->table1->new();
$class->insert( +{ping => $ping_num,
created_at => time,
updated_at => time,
closed => 0,} );
$class->commit;
它在被调用时在表1的新行中添加信息。 我想制作一个功能,1小时后,关闭值变为1。 任何模块或黑客?
最终“DatabaseInterfaceModule”无关紧要,DBI,Teng,......我对“在1小时后自动添加值或在表格中更改值”功能感兴趣。
答案 0 :(得分:2)
我认为这是错误的问题。
如果实例在更新后1小时关闭,则closed
字段的值直接从updated_at
字段的值派生,因此它不应该是字段。它应该是一个从updated_at
计算的方法:
sub closed {
my $self= shift;
return $self->somehow_get_updated_at + 3600 < time();
}
我怀疑计算close的真正逻辑会比这更复杂,但无论如何,如果它是从表中的现有值派生的,它应该在Perl类中计算,或者作为视图中的字段计算的DB。否则,您在数据库中有重复的信息。