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.