Klucze obce
wymusić integralność referencyjną
. Te ograniczenia gwarantują, że wiersz w tabeli order_details
z polem order_id
odwołując się do orders
tabela nigdy nie będzie miała order_id
wartość, która nie istnieje w orders
stół.
Klucze obce nie muszą mieć działającej relacyjnej bazy danych (w rzeczywistości domyślna pamięć MySQL silnik nie obsługuje FK), ale są one zdecydowanie niezbędne, aby uniknąć zerwania relacji i osieroconych wierszy (tj. integralności referencyjnej). Dla C . wymagana jest możliwość wymuszenia integralności referencyjnej na poziomie bazy danych w KWAS stanąć.
Jeśli chodzi o twoje obawy dotyczące wydajności, generalnie istnieje koszt wydajności, ale prawdopodobnie będzie on znikomy. Sugeruję wprowadzenie wszystkich ograniczeń kluczy obcych i eksperymentuj bez nich tylko wtedy, gdy masz rzeczywiste problemy z wydajnością, których nie możesz rozwiązać w inny sposób.