Основними перевагами використання справжніх зовнішніх ключів є забезпечення цілісності даних і можливість налаштування каскадних дій щодо пов’язаних елементів, коли щось змінюється або видаляється.
Наприклад, уявіть, що ви програмуєте форум. У вас є таблиця "теми" з первинним ключем topics.topic_id
, і у вас є таблиця "дописи", де дописи додаються до тем зі стовпцем posts.topic_id
, який є зовнішнім ключем до таблиці тем.
Цей зв’язок із зовнішнім ключем гарантує, що кожна публікація прикріплюється до дійсної теми. Якщо у вашої єдиної теми є ідентифікатор №1, неможливо існувати допис у базі даних, приєднаній до теми №2. База даних це забезпечує.
Для каскадної переваги ви можете налаштувати його так, що якщо тема видаляється з таблиці тем, база даних автоматично видаляє всі дописи в таблиці повідомлень, які були прикріплені до цієї теми. Це приємно, оскільки він видаляє крок, про який ви повинні пам’ятати, щоб зробити його вручну, що може стати досить складним, коли у вас багато таблиць, пов’язаних між собою. За допомогою зовнішніх ключів усі відносини можна очистити автоматично.