Nie używaj tej samej kolumny dla obu kluczy obcych. Czasami nazywa się to powiązaniami polimorficznymi i łamie zasady dobrego projektowania baz danych.
Powinno to być wskazówką, że jest to zły projekt, że ograniczenie FOREIGN KEY obsługuje tylko jedną tabelę, do której się odwołuje. W standardowym SQL nie ma obsługi asocjacji polimorficznych.
Zamiast tego utwórz dwie kolumny, jedną na odwołanie do Użytkowników, a drugą na odwołanie do Procesów Systemowych. Jedna kolumna na tabelę odniesienia.
Logs
uid (INT) UsersID (INT) SystemProcessesID (INT) Action
1 2 NULL Jane Doe did this
2 1 NULL John Doe did that
3 1 1 Hitman just killed John Doe
Jeśli nie ma odpowiedniego odniesienia dla kolumny Użytkownicy lub Procesy systemowe, użyj wartości NULL, aby wskazać, że nie ma odpowiedniej wartości.
Możesz chcieć przejrzeć inne pytania, na które odpowiedziałem na temat asocjacji polimorficznych .