Class-DBIで連鎖的にカラムを設定する方法
あるカラムに値を設定した場合、他のカラムがそれに追随して自動的に変更される方法。
結論から言えば、add_triggerを使う。
# columnの部分にカラム名が入る。 __PACKAGE__->add_trigger( after_set_column=>\&for_after_set_column ); sub for_after_set_column { my $self = shift; my $value = $self->get('column'); # 値を加工する。 $self->another_column($value); # 他のカラムに加工した値を設定する。 }
私はこれを、ISBNを設定すれば、自動的にEANやISBNの国籍コード、出版者コード等が埋まるように使った。