Составной первичный ключ и дополнительные индексы - PullRequest
11 голосов
/ 08 декабря 2010

В SQL Server 2005 у меня есть таблица с двумя столбцами: parent_id (int) и child id (int).Я хочу составить из них составной ключ, потому что мне нужно только один экземпляр для каждой возможной комбинации в таблице.

Большинство операций поиска будут выполняться в поле parent_id, некоторые в child_id итолько спорадические на обоих полях вместе.

Я планировал создать индекс для поля parent_id и, возможно, также для поля child_id.Имеет ли это смысл или SQL Server 2005 способен использовать кластерный составной первичный ключ для индексированных поисков только в одном столбце (в основном parent_id), и поэтому индекс не является необходимым / необязательным?

1 Ответ

16 голосов
/ 08 декабря 2010

Создайте составной первичный ключ (parent_id, child_id) для обеспечения уникальности.SQL Server может использовать составной поиск только для поиска по обоим столбцам или parent_id, но не может использовать его для поиска только по child_id.Если вам это нужно, необходимо создать отдельный индекс для child_id.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...