Comme beaucoup de gens l'ont suggéré, c'est une question de commodité; mais peut-être plus profondément, c'est la convention.
En tant que programmeur, mon premier réflexe serait d'utiliser une clé numérique pour un ID de couche car c'est ainsi que cela a toujours été fait. En effet, il ne m'est même pas venu à l'esprit, au moins sur un plan conscient, que je doive procéder autrement. Bien sûr, s'il y a une raison technique de ne pas utiliser d'entiers, dites s'il y a une possibilité qu'il y ait plus de couches que ce qui peut être stocké en 32 bits (une proposition très improbable!), Ou s'il y a une raison commerciale pour cela, alors des alternatives seraient envisagées.
Il y a aussi des considérations algorithmiques avec les touches numériques. Le tri et la recherche d'une liste de valeurs triées se résument finalement à une comparaison entre deux nombres, même s'il s'agit d'une liste de chaînes ou d'objets complexes; ils sont simplement transformés en nombres avec une fonction de hachage . Cela dit, sur les ordinateurs modernes, la recherche d'une liste de 100 ou même 1000 éléments est généralement aussi rapide avec une approche par force brute qu'avec un algorithme hautement optimisé. Dans le cas des couches dans un SIG, je ne vois même pas la plus complexe des cartes ayant plus de 1000 ou plus, et même si c'était le cas, les autres calculs associés prendraient des ordres de grandeur plus longs que tout petit gain d'un optimisé recherche d'une liste restreinte.
Les clés entières "ont tout simplement du sens" pour un programmeur, et comme le dit Brad, l'utilisation de touches non numériques demande plus d'efforts. Peut-être pas plus de code, mais plus d'effort mental, et nous sommes des créatures paresseuses d'habitude. De plus, la clé qui identifie de manière unique quelque chose comme une couche dans un SIG est considérée comme "cachée" par l'utilisateur, pour s'assurer qu'il ne s'en occupe pas et ne casse pas le code qui repose sur son unicité (malgré les mots-clés DB UNIQUE). Parce que si vous donnez suffisamment de corde à un utilisateur, tôt ou tard, quelqu'un se pendre avec. Bien sûr, imposez l' unicité sur un champ modifiable par l'utilisateur, mais le système sous-jacent doit supposer que sa clé est unique et non altérée.