2014-09-02 3 views
-1

Каковы преимущества и недостатки создания связей таблиц в базе данных MySQL с использованием запросов (JOINS), а не с использованием DDL с использованием внешних ключей и ограничений ссылочной целостности? Я получил базу данных, которая не имеет отношений (Нет FK) в своих таблицах, чтобы идентифицировать отношения между таблицами. Эти отношения создаются в JOINS при запросе данных.MySQL DB Foreign Key

ответ

0

Основная причина использования внешних ключей заключается в том, что данные всегда согласованы в базе данных. Это «независимый» от соединений - при использовании внешних ключей вам все равно нужно использовать соединения.

В MySQL он также имеет приятный побочный эффект: если вы используете внешние ключи, вам нужно определить индексы, которые могут ускорить выполнение запросов.

Но с внешними ключами вы можете убедиться, что строка, которую вы указываете, должна существовать в базе данных. См. https://en.wikipedia.org/wiki/Foreign_key.

+0

Спасибо MrTux за ваш быстрый ответ. Я знаю, что вы все еще используете JOINS на столах с FK. Я также знаю, что определение таблиц с FK сохраняет целостность данных. Я предполагаю, что я пытался получить было ... Является Нет Нет проектирования базы данных без использования внешних ключей для определения отношений таблицы или это не имеет значения? Помимо целостности данных, каковы основные недостатки проектирования базы данных таким образом, т.е. нет FK? Благодарю. –

+0

Я больше не буду конструировать какую-либо БД без FK. Единственным недостатком является то, что вставка в дочернюю таблицу может быть немного медленнее, так как должно существовать существование ключа в родительской таблице. Но я думаю, что это пренебрежительно по сравнению с «чистой» и последовательной БД. FK поддерживаются только для таблиц InnoDB в MySQL, что также может быть причиной того, что многие БД не используют FK, потому что это всего лишь MyISAM (я тоже не рекомендую - InnoDB имеет блокировку на основе строк и поддерживает транзакции). – MrTux

+0

Спасибо MrTux. Именно такой ответ я искал. –