Я бы, вероятно, пошел с двумя таблицами - это делает ссылочную целостность PK / FK немного проще для обработки в базе данных, так как вам не нужно иметь сложное ограничение на основе столбца селектора.
(чтобы ответить на ваш комментарий - мне не хватило места, поэтому опубликуйте здесь в качестве редактирования) Моя общая философия заключается в том, что база данных должна быть смоделирована с использованием лучших практик базы данных (защитить ваш периметр и обеспечить согласованность базы данных, используя как можно больше RI и ограничения, насколько это возможно, обеспечивают весь доступ через SP, регистрируют активность по мере необходимости, контролируют все режимы доступа, используют триггеры, где это необходимо), и объектную модель следует моделировать с использованием передового опыта ООП для обеспечения мощного и согласованного API. Задача ваших SP / уровня доступа к данным обрабатывать несоответствие импеданса.
Если вы просто сохраните хорошо спроектированную объектную модель в базе данных, ваша база данных не будет иметь большой внутренней ценности (трудно поддается анализу, отчету, хранилищу, неопределенным метаданным и т. Д.) При просмотре без прохождения через объектив объектная модель - это хорошо для некоторых приложений, обычно не для моего.
Если вы просто имитируете хорошо спроектированную структуру базы данных в своем приложении, не предоставляя богатый ОО-API, ваше приложение будет трудно поддерживать, и с внутренними структурами будет неудобно иметь дело - как правило, очень процедурным, жестким и с много дублирования кода.