Я разрабатываю таблицу участников для хранения пользователей веб-сайта. Он будет использоваться каждый раз, когда пользователь входит в систему на веб-сайте, и время от времени используется для обновления сведений о пользователе.
Пользователи будут входить в систему с адресом электронной почты и паролем, и каждая учетная запись будет иметь уникальный адрес электронной почты. Поэтому кажется логичным, что столбец электронной почты таблицы участников должен быть кластеризованным индексом, так как большинство запросов к этой таблице будут относиться к столбцу электронной почты при входе пользователей в систему. Создание уникального столбца электронной почты и ключа к кластеризованному индексу должно ускорить запросы данных пользователей при входе в систему и повысить производительность.
Но, насколько я понимаю, было бы неправильно делать колонку Email Первичным ключом по двум причинам. Во-первых, первичный ключ должен быть постоянным, поэтому, если пользователь решит изменить свой адрес электронной почты, все внешние ключи должны быть обновлены, а это плохо. Во-вторых, адреса электронной почты представляют собой строки, из-за которых соединение будет медленнее, чем если бы PK был целым числом.
Итак, могу ли я сделать некластеризованный индекс первичным ключом? Таким образом, таблица имеет как кластеризованный индекс с электронной почтой в качестве уникального ключа, так и первичный ключ int в качестве некластеризованного индекса сверху?
Спасибо, Дункан