Составной первичный ключ и дополнительные индексы

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

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

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

Ответ 1

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