in reply to
OO design and persistence
This might be still a bit exotic but in PostgreSQL there is a mechanism called inheritance exactly for cases like this. See
5.8. Inheritance
in PostgreSQL manual.
Comment on
table inheritance in PostgreSQL
In Section
Seekers of Perl Wisdom