2010-08-24 1 views
2

Если две таблицы имеют внешние ключи к одному и тому же первичному ключу другой таблицы, означает ли это, что для этих внешних ключей создаются два индекса или они используют один и тот же индекс (индекс первичного ключа?)Дизайн базы данных и как работают внешние ключи?

ответ

4

Два индекса быть создан; по одному для каждого внешнего ключа (что составляет в общей сложности три, включая индекс в столбце первичного ключа). Следует отметить, что это не относится к другим системам баз данных, которые требуют, чтобы вы явно добавляли индекс по внешнему ключу. В innodb MySQL требуется, чтобы индекс создавался при создании отношения внешнего ключа.

См. Foreign Keys для получения дополнительной информации.

0

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

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

Внешние ключи и их реализация сложнее первичных ключей.

Ограничение внешнего ключа не предоставляет индекс - нужно (и должно) быть создано.

Итак, чтобы ответить на ваш вопрос, нужно создать 2 индекса, по одному для каждого ключа. Существует также много инструментов, которые могут помочь вам при разработке баз данных. В настоящее время я использую SQLDbm, который я нашел наиболее полезным для меня.

Для указания индексирования вы можете пойти here.