Odpowiedzi na to pytanie może dotyczyć również Twojego pytania.
Jeśli masz kolumny w tabelach, które odwołują się do wierszy w innych tabelach, zawsze powinieneś używać kluczy obcych, ponieważ nawet jeśli uważasz, że „nie potrzebujesz” funkcji oferowanych przez te sprawdzenia, nadal pomoże to zagwarantować integralność danych na wypadek, gdybyś zapomniałeś sprawdzić swój własny kod.
Wpływ na wydajność sprawdzania kluczy obcych jest w większości przypadków znikomy (patrz powyższy link), ponieważ relacyjne bazy danych używają bardzo zoptymalizowanych algorytmów do ich wykonywania (w końcu są one kluczową cechą, ponieważ to one faktycznie definiują relacje między jednostkami).
Kolejną ważną zaletą FK jest to, że pomogą one również innym zrozumieć układ Twojej bazy danych.
Edytuj: Ponieważ powyższe pytanie odnosi się do SQL-Server, oto jedno z odpowiedziami bardzo podobnego rodzaju dla MySQL:Czy wprowadzenie kluczy obcych do MySQL zmniejsza wydajność