Główne korzyści wynikające z używania prawdziwych kluczy obcych to zapewnienie integralności danych i możliwość skonfigurowania kaskadowych działań na powiązanych elementach, gdy coś zostanie zmodyfikowane lub usunięte.
Na przykład wyobraź sobie, że programujesz forum. Masz tabelę „tematy” z kluczem głównym topics.topic_id
i tabelę „posty”, w której posty są dołączone do tematów z kolumną posts.topic_id
, która jest kluczem obcym do tabeli tematów.
Ta relacja z kluczem obcym zapewnia, że każdy post jest dołączony do prawidłowego tematu. Jeśli jedyny temat, który posiadasz, ma ID # 1, nie może istnieć post w bazie danych dołączony do tematu # 2. Baza danych zapewnia to.
Aby uzyskać korzyści kaskadowe, możesz ustawić to tak, aby w przypadku usunięcia tematu z tabeli tematów baza danych automatycznie usuwała wszystkie posty w tabeli wiadomości, które były dołączone do tego tematu. Jest to przyjemne, ponieważ usuwa krok, o którym musisz pamiętać, aby wykonać go ręcznie, co może być dość skomplikowane, gdy masz wiele połączonych ze sobą tabel. Za pomocą kluczy obcych wszystkie relacje można wyczyścić automatycznie.