From: Tatsuhiko M. <miy...@ed...> - 2001-09-17 11:47:01
|
On Mon, 17 Sep 2001 12:30:24 +0100 Tony Bowden <to...@ka...> wrote: > > sub delete { > > my $self = shift; > > $self->live(undef); > > $self->commit; > > } > > Yes... I'd say this sort of 'logical delete' is quite common. Others > probably do a > > sub delete { > my $self = shift; > $self->move('Some::Class::For::Deleted::Rows'); > $self->SUPER::delete; > } Yeah, that *is* also one of my solutions :) But deleted table (ie. trashbox) will lead to duplicate entry for primary key or something like that in some cases. Whether this makes trouble or not depends case-by-case, off course however. > Both of these should probably go in the cookbook ... Nice. > > The headache is off course, as you wrote, all SELECTs to the table > > should ignore those recors like > > SELECT .... WHERE live IS NOT NULL; > > Hmmm ... have you found a nice way to do this? I remember I implemented intermediate base-class which overrides search() or retrieve() (means SELECT related methods) to add "WHERE live IS NOT NULL" flag. However IMHO this is not an intuitive way. -- Tatsuhiko Miyagawa <miy...@bu...> |