Дело в том, что Ваш пример из головы не верен и сильно утрирован.
Вот хорошая серия статей на эту тему.
TpH стоит использовать, когда разделение по классам либо носит маркерную задачу, либо классы отличаются не сильно. Если алгоритмы обработки данных иерархии схожи. Если требуется выполнять запросы по всей иерархии. Например у вас есть класс автомобилей и субклассы по маркам машин.
TpT стоит использовать, если каждый тип в иерархии самодостаточен и имеет собственные алгоритмы обработки, когда общие запросы на иерархию выполняются только для родителя. Например у вас есть класс транспортных средств с полями скорости, грузоподъемности и т.д. и субклассы по категориям.
TpCT стоит использовать если каждый тип в иерархии самодостаточен и общие запросы не требуются, но требуется общий функционал во время разработки. Например, я использую почти всегда базовую сущность, содержащую первичный ключ, таймстамп и поля дат операций.
Стоит обратить Ваше внимание, что правильным подходом при разработке больших приложений будет использование различный подходов в зависимости от задач каждого конкретного класса. Кроме того, предлагаю Вам обратить внимание на технологию CodeFirst как можно раньше. Она предоставляет FluentApi, который дает гибкость настройки БД.