Две связанные таблицы и проблема независимости первичного ключа - PullRequest
0 голосов
/ 02 января 2012

Мне было интересно, если у нас есть две таблицы, которые совместно используют один столбец, и в первой таблице этот столбец является первичным ключом, а во втором другой выбирается в качестве первичного ключа ... тогда SQL обрабатывает общийстолбец во второй таблице как просто очередной обычный столбец?Следовательно, никакой оптимизации не происходит, если вторая таблица ищется на основе информации общего столбца, то есть первичные ключи между двумя связанными таблицами полностью независимы?

Ответы [ 2 ]

3 голосов
/ 02 января 2012

Да, они независимы: первичные ключи полностью уникальны для таблицы.

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

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

0 голосов
/ 02 января 2012

Если между двумя столбцами соответствующих таблиц установлены правильные отношения PK - FK, то любые объединения должны быть оптимизированы.

...