Как хранить дочерние классы в бд?
А в бд мне нужно просто создать 4 таблицы для каждого вида? Или есть другой способ?Описание слишком примитивное. От нюансов зависит. Если свойства не постоянные(или имеется вероятность изменения количества свойств) то будет таблица сущностей с общими свойствами, переменные свойства выносятся в отдельную таблицу, а наличие свойства у конкретного экземпляра в другую таблицу. В итоге джоином 3 таблиц получают кастомный набор свойств у любого экземпляра. 
Если это принципиально разные классы объектов (например товары и публикации - обе сущности имеют заголовок, описание, дату создания... но есть еще куча разных свойств. и это реально разные по логике сущности) то наследуются от базового объекта, и далее каждый имеет свою таблицу и свои классы.
Да, 4 таблицы. Но это у вас должна быть такая бизнес-логика, которая это оправдывает. Уверены что оно вам действительно требуется?
В 90% случаев достаточно одной модели и у нее разные свойства. 
Например, пользователь - у него есть свойство пол. Или набор свойств, лежащих в отдельной таблице.
То, что вы описываете - это наследование от интерфейса Гуманоид нескольких моделей, допустим, модели Человека и Инопланетянина. Там будет 2 таблицы и две разные модели, имплементирующие интерфейс/наследующие абстрактный класс Гуманоид. Но будет совершенно разная реализация методов.  
Но я сомневаюсь, что на этапе изучения надо так себе жизнь усложнять темой наследования моделей. Я, например, за свою практику, только один раз с подобной системой столкнулся, работая в телекоммуникационой компании, где бизнес-логика была представлена в виде отражения реальной инфраструктуры (сервера наследовались, свитчи, роутеры и пр). В большинстве случаев в веб-задачах такими усложнениями и не пахнет.
Или  взять какой-нибудь портал типа Авто-ру. Я не думаю, что объекты объявлений имеют разные типы (легковое//грузовые машины/спецтехника) - там все это также представлено наверняка в виде свойств одного объекта Объявление.