Aby rozwinąć na odpowiedź RichardOD „s, ty zazwyczaj mają trzy opcje w przypadku podtypów, a wybór zależy od tego, co należy zrobić z danymi, o których mowa.
Pierwsza opcja to ta, której aktualnie używasz: zachowaj wszystkie kolumny powiązane z różnymi typami w jednej tabeli, z flagami i pustymi znakami używanymi do wskazania typu danego rekordu. Jest to najprostszy sposób na zarządzanie podtypem i generalnie działa dobrze, gdy masz tylko kilka typów lub różne typy nie różnią się zbytnio. W twoim przypadku wygląda na to, że typy mogą się nieco różnić.
Drugą opcją jest zachowanie tabeli centralnej zawierającej wszystkie wspólne kolumny między podtypami i relacje jeden-do-jednego z innymi tabelami, które zawierają szczegółowe informacje o typie tych typów.
Trzecią opcją jest, aby w ogóle nie myśleć o różnych typach jako podtypach i po prostu zachować wszystkie typy rekordów w osobnych tabelach. Tak więc nie ma wspólnej tabeli między typami przechowującymi wspólne dane, a każda tabela będzie zawierała kolumny powtarzające się w tabelach.
Teraz każda opcja ma swoje miejsce. Używałbyś pierwszej opcji, gdy nie ma zbyt wielu różnic między różnymi typami. Używałbyś drugiej opcji, jeśli chcesz manipulować wspólnymi polami niezależnie od pól specyficznych dla rodzaju; na przykład, jeśli chcesz wyświetlić wszystkie gry sportowe w dużej siatce z ogólnymi informacjami, a następnie pozwolić użytkownikom kliknąć, aby zobaczyć szczegóły dotyczące konkretnej gry. Trzecia opcja byłaby używana, gdy typy nie są w ogóle bardzo powiązane i po prostu przechowujesz je razem z wygody; różne schematy, nawet jeśli mają kilka pól, nie powinny być łączone.
Pomyśl o tym, co musisz zrobić z danymi i jak pasuje do tych trzech opcji, i sam zdecyduj, który jest najlepszy. Jeśli nie możesz zdecydować, zaktualizuj swoje pytanie ze szczegółami, w jaki sposób zamierzasz korzystać z danych, a ja lub ktoś inny powinien móc Ci pomóc.
Ale nie rozpoczynaj partycjonowania, dopóki nie będziesz zadowolony ze swojego stopnia normalizacji. – reinierpost