Какие плюсы и естественно минусы от этого, давайте разберемся.
Для непосвященных приведу описание внешних ключей(взято с википедии)
Вне́шний ключ (англ. foreign key) — понятие теории реляционных баз данных, относящееся к ограничениям целостности базы данных.
Неформально выражаясь, внешний ключ представляет собой подмножество атрибутов некоторой переменной отношения R2, значения которых должны совпадать со значениями некоторого потенциального ключа некоторой переменной отношения R1.
А еще проще говоря внешний ключ это своего рода индентификатор данных расположенных в другой таблице.
К примеру у вас есть пользователи на сайте, и естественно в базе данных есть таблица user с полями id,name. Так же у ваших пользователей есть фотоальбомы и таблица в базе данных album с полями id, id_user,name_album так вот в поле id_user и помещается внешний ключ который ведет к таблице user и уникальному индентификатору id то есть такого ключа который в таблице user и поле id не может повторяться дважды.
Преимущество внешних ключей в скорости поиска данных (для внешних ключей создается индекс для поиска), в удобстве удаления,редактирования,обновления информации,действия зависят от свойств ключа,если например для ключа разрешено удаление связки то при удалении пользователя автоматически удаляются и его альбомы с базы данных, это в свою очередь удебно тем что вам не нужно писать дополнительные запросы и проверки в базу данных, она все сделает за вас.
Так же это удобно тем что если пользователь каким то образом умудрился сменить себе id(например в некоторых Cms встречал такое что id пользователя брался из кук, и по нему происходила запись в базу,то есть изменив куку в браузере мы могли создать альбом с несуществующим id пользователя), то при связке по внешнему ключу база данных не позволит создать альбом с несуществующим пользователем так как ключа id в таблице user не существует, база просто вызовет ошибку, не добавив альбом, то же самое относится и к таким свойствам как удаление, добавление, обновление и т.д таблиц.
Внешние ключи очень помогают в создании структуры базы данных при написании скрипта, так как вам не придется делать сотни проверок на наличие существовании индентификатора. Достаточно при создании таблицы указывать внешний ключ, а база уже сама составит цепочки.
При поиске вам не нужно будет делать сотню запросов(и подзапросов) для создании цепочки(например если на одной странице вы ходите получить альбомы, статьи, посты в форуме от конкретного пользователя) база сделает это сама, причем гораздо быстрее чем вы сделаете 3 запроса.