Możesz to obejść za pomocą dodatkowej tabeli individual_pks (individual_pk integer primary key)
ze wszystkimi kluczami podstawowymi od rodzica i dziecka, które będą utrzymywane za pomocą wyzwalaczy (bardzo proste — wstaw do individual_pks
przy wstawieniu, usuń przy usuwaniu, zaktualizuj przy aktualizacji, jeśli zmieni individual_pk
).
Następnie wskazujesz klucze obce do tej dodatkowej tabeli zamiast do dziecka. Nastąpi mały spadek wydajności, ale tylko podczas dodawania/usuwania wierszy.
Lub zapomnij o dziedziczeniu i zrób to po staremu - po prostu jedna tabela z kilkoma kolumnami dopuszczającymi wartości null.