Для чистой эффективности использование Int в качестве основного ключа лучше всего благодаря поддержке сравнения Ints на уровне машинного кода. Строки сравниваются с использованием алгоритмов, реализованных на уровне базы данных. Если ваши строки не очень короткие, ключ Integer займет меньше места на странице (страница db).
Обновление: Основываясь на другом ответе на доске, я не уверен, правильно ли я понял ваш вопрос. Вы спрашиваете, лучше ли использовать Integer в качестве ключа по сравнению со строкой (где либо можно выбрать)? Или вы спрашиваете, должен ли ваш тип C# соответствовать типу вашей базы данных? Я предполагаю, что бывший ... и был бы очень удивлен, если бы он был последним, чей ответ, который я думаю, очевиден.
Обновление: Теперь Ливен разъяснил свою просьбу сказать, что он действительно спрашивал, будет ли поле Int или nchar лучше в качестве индекса, поэтому мой первоначальный вопрос по этому вопросу был правильным.
Чтобы добавить к моему ответу, Ливен, почти всегда лучше иметь Int как ваш ПК. Исключением является когда есть естественный ключ, который может быть захвачен как короткая строка символов (например, в системе учета, где записи «Item» являются строками символов). Причины трижды.
Во-первых, целые числа представляются в виде нативного машинного типа (32 или 64-разрядное слово) и управляются с помощью машинных операций, тогда как строки не должны, а должны сравниваться с использованием подхода char-by-char. Так, например, при перемещении индекса PK (обычно некоторого варианта BTree), чтобы найти запись, операция сравнения на каждом узле является одной операцией. Это огромная вещь? Вероятно, нет, если вы не работаете с действительно массивной базой данных или транзакционной нагрузкой. Если у вас есть натуральный символ, тогда, конечно, используйте его! Однако, если ваш «ключ» - это первые пять букв фамилии плюс первый начальный плюс номер, чтобы сделать его уникальным, то, очевидно, вам будет намного лучше с полем Int.
Во-вторых, целые числа просто занимают меньше места, чем почти любой символ ключа (кроме char (1), предполагающий использование Unicode). И это не просто комната на главной странице таблицы, помните, что поля индекса также представлены в индексе. Опять же, это очень важно? Не совсем, если вы еще не работаете с массивной базой данных.
Наконец, наш выбор ключей часто имеет эффекты в других местах. Так, например, если вы используете первичный ключ в одной таблице в качестве внешнего ключа на другом, оба вышеупомянутых эффекта увеличиваются, когда вы вставляете или обновляете записи в таблице, используя внешний ключ.
Сумма: используйте наиболее естественный ключ. Однако, если у вас есть выбор между Int и Char, и оба они по существу произвольны, идите с Int над Char.
Какой тип SQL являются первичными ключами в базе данных Notwind Starters Kit? – Lucas
Все нормально. Получил 50 быстрых очков ... ;-) –
Спасибо, что выбрали мой ответ как правильный. Я надеюсь, что информация будет полезной. –