Да, это один из трех способов сделать это.
Второй способ, и, возможно, самый простой, состоит в том, чтобы просто иметь значения в подтипе быть полями в супертипе, которые могут быть нулевыми. Это требует больше места, но увеличивает производительность, так как требует меньше запросов для получения данных подтипа.
Третий способ - создать таблицу для каждого типа / подтипа. Это эффективно, только если вы всегда знаете тип / подтип данных, которые вам нужно найти. Это также не требует так много места как второй путь.