Да, модели у вас разные, но вы тогда пытаетесь совместить несовместимое. У вас разные объекты, но пытаетесь вы их наследовать от одного класса, еще и таблицы разные используете... Я бы все-таки создал общую таблицу со всеми уникальными полями и рулил свойством class_key различные типы объектов.
c 1 общей таблицей , страшно за расширяемость в дальнейшем