To, że dane mają podobną strukturę, nie oznacza, że mają to samo znaczenie lub te same ograniczenia. Trzymaj tabele przeglądowe oddzielnie. To zachowuje klucze obce oddzielne, dzięki czemu baza danych może chronić się przed odwoływaniem się do niewłaściwych danych wyszukiwania.
Chciałbym, aby relacyjne DBMS-y wspierały dziedziczenie, w którym można zdefiniować podstawową strukturę w tabeli nadrzędnej i po prostu dodać określone FK w tabelach podrzędnych. W obecnej sytuacji będziesz musiał znieść kilka powtórzeń w swoim DDL...
UWAGA:Jedynym wyjątkiem od reguły „trzymaj tabele odnośników oddzielnie” może być sytuacja, w której system musi być dynamiczny (tj. być w stanie dodawać nowe rodzaje danych odnośników bez faktycznego tworzenia nowych tabel fizycznych w bazie danych), ale nie wygląda to tak droga od twojego pytania.
Przy jednej dużej tabeli odnośników same FK nie zatrzymają (na przykład) ShippingLog
tabela z odwoływania się do wiersza przeznaczonego dla EmployeeTask
stół. Korzystając z identyfikowania relacji i migrowania PK, możesz się przed tym uchronić, ale nie bez wprowadzania zwolnień i konieczności starannego ograniczania. Czystsze i prawdopodobnie bardziej wydajne jest po prostu właściwe postępowanie i oddzielne oddzielenie tabel wyszukiwania.