Базы данных OO проходят ту же самую вещь и предлагают почти те же самые опции.
Если дело в том, чтобы моделировать подклассы в базе данных, вы, вероятно, уже размышляете о тех решениях, которые я видел в реальных базах данных ОО (оставляя поля пустыми).
Если нет, вы можете подумать о создании системы, которая не использует наследование таким образом.
Наследование всегда должно использоваться довольно экономно, и это, вероятно, довольно плохой случай для него.
Хорошее правило - никогда не использовать наследование, если у вас нет кода, который по-разному работает с полем класса «Родитель», чем с тем же полем в классе «Дочерний». Если бизнес-код в вашем классе специально не ссылается на поле, это поле не должно вызывать наследование.
Но опять же, если вы в школе, это может не соответствовать тому, чему они пытаются научить ...