Ответ 1
Внешние ключи являются лишь ограничениями для обеспечения ссылочной целостности, Вам все равно придется использовать JOINs для создания ваших запросов.
Внешние ключи гарантируют, что строка в таблице order_details
с полем order_id
, ссылающаяся на таблицу orders
, никогда не будет иметь значение order_id
, которое не существует в таблице orders
. Внешним ключам не требуется иметь рабочую реляционную базу данных (фактически хранилище по умолчанию MySQL движок не поддерживает FK), но они, безусловно, необходимы чтобы избежать сломанных связей и сиротских строк (то есть ссылочной целостности).