Если кратко - есть несколько способов уложить объекты в таблицы:
1) Для каждого конкретного класса - своя таблица
2) Общая таблица для всех классов со всеми полями всех классов.
3) Общая таблица с для всех классов с общими для всех классов полями
(общий предок) + таблицы на каждого потомка с оставшимися полями связанные.
Мы все эти три метода переизобрели сами давно, а зимой я вот у Фаулера
читал то же самое. Но только здесь проблема уровня реляционки по-моему,
что она не позволяет такого рода ключи создавать. Хотя, если честно, со
стороны мне не кажется что тут какие-то особые сложности могут быть в
реализации.