Як багато людей припустили, це питання зручності; але, можливо, глибше, це конвенція.
Як програміст, моїм першим інстинктом було б використовувати цифровий ключ для ідентифікатора шару, тому що це було завжди. Дійсно, мені може навіть не прийти в голову, принаймні, на свідомому рівні, що я повинен це робити будь-яким іншим способом. Звичайно, якщо є технічна причина не використовувати цілі числа, скажіть, чи існує можливість наявності більше шарів, ніж можна зберегти в 32-бітних (дуже малоймовірна пропозиція!), Або якщо для цього є бізнес-причина, тоді альтернативи будуть розглядатися.
Існують також алгоритмічні міркування з цифровими клавішами. Сортування та пошук списку відсортованих значень зрештою зводиться до порівняння двох чисел, навіть якщо це список рядків або складних об'єктів; вони просто перетворюються на числа з функцією хешування . Зауваживши, що на сучасних комп’ютерах пошук списку 100 або навіть 1000 предметів, як правило, настільки ж швидкий при грубому підході, як і при високо оптимізованому алгоритмі. У випадку шарів в ГІС я не бачу навіть найскладніших карт, що мають більше 1000 або близько того, і навіть якби це було, інші пов'язані з ним обчислення займуть порядків більше, ніж будь-який невеликий приріст від оптимізованого пошук короткого списку.
Цілі клавіші "просто мають сенс" для програміста, і, як каже Бред, докладено більше зусиль у використанні нечислових ключів. Можливо, не більше коду, але більше розумових зусиль, і ми ліниві істоти за звичкою. Також ключ, що однозначно ідентифікує щось на кшталт шару в ГІС, вважається "прихованим" від користувача, щоб переконатися, що вони з ним не возиться і порушують код, який покладається на його унікальність (незважаючи на ключові слова DB UNIQUE). Тому що якщо ви дасте користувачеві достатньо мотузки, рано чи пізно хтось повіситься на нього. У будь-якому разі застосовувати унікальність у користувальницькому полі, але система, що лежить в основі, повинна вважати, що її ключ є унікальним і не має змоги.