Обычно производительность
В теории / дизайне у вас есть логическая модель, где, скажем, имя пользователя уникально.
Однако во время реализации вы знаете, что использовать это дорого (случай, акценты, длина и т. д.) по сравнению с использованием суррогатного столбца «userid», который более эффективен в качестве индекса.Сказав это, у вас все равно будет индекс на имя, потому что он должен быть уникальным.
Разница будет в том, где вы используете этот индекс: если он находится в дочерней таблице в качестве столбца внешнего ключа, это не очень хорошоидея.Или как кластеризованный индекс.
Как отдельный индекс для таблицы без FK, тогда он не будет ни здесь, ни там.
Наконец, я бы просто использовал char / varchar для таких вещей, как ISOкод языка или валюты (DE, EN, GBP, CHF и т. д.).Но, если честно, мой отрезок меняется ...