Я собираюсь сыграть здесь адвоката дьявола и сказать, что оба решения звучат как плохое приближение к фактическим данным. Есть причина, по которой объектно-ориентированные языки программирования не имеют тенденцию реализовываться ни с одной из этих моделей данных, и это не потому, что идеи Codd 1970 года об отношениях были идеальной системой для хранения и запроса объектно-ориентированных структур данных. : -)
Помните, что SQL изначально разрабатывался как язык пользовательского интерфейса (поэтому он выглядит смутно как английский, а не совсем как другие языки того времени: Algol, C, APL, Prolog). Единственные причины, по которым я слышал о том, что сегодня пользователи не выставляют базу данных SQL, - это безопасность (они могут отключить сервер!) И удобство использования (кто хочет писать SQL, когда можно щелкнуть мышью?), Но если это их сервер и они хотите, то почему бы не позволить им?
Учитывая, что "большая часть системы вращается вокруг типа наследования", я бы всерьез рассмотрел базу данных, которая позволяет мне представить это изначально, либо Postgres (если важен SQL) или собственная объектная база данных (с которой можно работать, если вам не нужна совместимость с SQL).
Наконец, помните, что каждое инженерное решение - это компромисс. «Придерживаясь своего оружия» (как кто-то еще предложил), вы неявно заявляете, что ценность желаний ваших пользователей равна нулю. Не спрашивайте SO о правильном ответе на это, потому что мы не знаем, что ваши пользователи хотят делать с вашими данными (или даже каковы ваши данные, или кто ваши пользователи). Скажите им, почему вы хотите решение с несколькими таблицами, а затем разработайте для них решение, приемлемое для вас обоих.