Чтобы уточнить ответ RichardOD «s, вам обычно имеют три варианта при работе с подтипированием, и которые вы выбираете, зависит от того, что вам нужно делать с данными.
Первый вариант - тот, который вы используете в данный момент: сохранить все столбцы, относящиеся к разным типам в одной таблице, с флагами и значениями, используемыми для указания того, какой тип является данной записью. Это самый простой способ управления подтипированием, и он обычно хорошо работает, когда у вас есть только несколько типов или разные типы не очень разные. В вашем случае, похоже, типы могут сильно варьироваться.
Второй вариант заключается в том, чтобы сохранить центральную таблицу, которая содержит все общие столбцы между подтипами, и иметь отношения «один к одному» с другими таблицами, которые содержат специфические для типа данные этих типов.
Третий вариант - не думать о разных типах как подтипах вообще и просто хранить записи всех типов в отдельных таблицах. Таким образом, у вас не будет общей таблицы между типами, которые хранят общие данные, и каждая таблица будет иметь несколько столбцов, которые повторяются через таблицы.
Теперь каждый вариант имеет свое место. Вы должны использовать первый вариант, если между разными типами нет различий. Вы должны использовать второй вариант, если вам нужно манипулировать общими полями независимо от полей типа; например, если вы хотите перечислить все спортивные игры в большой сетке с общей информацией, а затем позволить пользователям щелкнуть, чтобы увидеть специфичные для типа детали этой игры. Вы бы использовали третий вариант, когда типы не очень сильно связаны, и вы просто храните их вместе из удобства; несходные схемы, даже если они разделяют несколько полей, не должны объединяться.
Так что подумайте о том, что вам нужно делать с данными и как они вписываются в три варианта и сами выбирают, что лучше. Если вы не можете решить, обновите свой вопрос с подробной информацией о том, как вы планируете использовать данные, и я или кто-то еще должен быть в состоянии помочь вам больше.
Но не начинайте разделение, пока не удовлетворитесь своей степенью нормализации. – reinierpost