Jak sugerowało wiele osób, jest to kwestia wygody; ale może głębiej, jest to konwencja.
Jako programista, moim pierwszym instynktem byłoby użycie klucza numerycznego dla identyfikatora warstwy, ponieważ zawsze tak było. Rzeczywiście, może nawet nie przyszło mi do głowy, przynajmniej na świadomym poziomie, że powinienem to zrobić w inny sposób. Oczywiście, jeśli istnieje techniczny powód, aby nie używać liczb całkowitych, powiedzmy, czy istnieje możliwość istnienia większej liczby warstw niż może być przechowywana w 32-bitach (bardzo mało prawdopodobna propozycja!), Lub jeśli istnieje uzasadnienie biznesowe, wtedy rozważone zostaną alternatywy.
Istnieją również względy algorytmiczne dotyczące klawiszy numerycznych. Sortowanie i wyszukiwanie listy posortowanych wartości ostatecznie sprowadza się do porównania dwóch liczb, nawet jeśli jest to lista ciągów znaków lub złożonych obiektów; zostają po prostu zamienione na liczby z funkcją haszującą . To powiedziawszy, na współczesnych komputerach przeszukiwanie listy powiedzmy 100, a nawet 1000 pozycji jest zwykle tak szybkie przy użyciu metody brutalnej siły, jak przy wysoce zoptymalizowanym algorytmie. W przypadku warstw w GIS nie widzę nawet najbardziej złożonych map mających więcej niż 1000, a nawet gdyby tak było, inne powiązane obliczenia zajęłyby rzędy wielkości dłuższe niż jakikolwiek niewielki zysk ze zoptymalizowanego wyszukiwanie krótkiej listy.
Klucze całkowite „po prostu mają sens” dla programisty, a jak mówi Brad, więcej wysiłku wymaga użycie kluczy nienumerycznych. Może nie więcej kodu, ale więcej wysiłku umysłowego, a my jesteśmy leniwymi stworzeniami przyzwyczajonymi. Ponadto klucz, który jednoznacznie identyfikuje coś w rodzaju warstwy w GIS, jest uważany za „ukryty” przed użytkownikiem, aby upewnić się, że nie zadziera z nim i nie złamie kodu, który opiera się na jego wyjątkowości (pomimo słów kluczowych DB UNIQUE). Ponieważ jeśli dasz użytkownikowi wystarczającą ilość liny, prędzej czy później ktoś się z nią zawiesi. Wymuszaj unikalność w polu edytowalnym przez użytkownika, ale system bazowy musi założyć, że jego klucz jest unikalny i niezakłócony.