Подтвердить что ты не робот

Внешние ключи против воссоединения

Лучше ли использовать внешние ключи в таблицах или могут быть достигнуты одни и те же результаты с помощью соединений?

4b9b3361

Ответ 1

Внешние ключи являются лишь ограничениями для обеспечения ссылочной целостности, Вам все равно придется использовать JOINs для создания ваших запросов.

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

Ответ 2

FOREIGN KEY s и JOIN s не делают то же самое!

  • A FOREIGN KEY обеспечивает целостность данных, удостоверяясь, что данные подтверждают некоторые правила, когда они добавляются в БД.
  • A JOIN используется, когда вы извлекаете/запрашиваете данные из БД, предоставляя правила выбора данных.

  • JOIN работать, если есть FK или нет.

  • FK работает, если вы извлекаете данные с или без JOIN s.

ЗАКЛЮЧЕНИЕ: FK и JOIN не позволяют достичь той же цели!