or another example - i am currently doing a warehousing system to store pallets of products in a large warehouse with thousands of pallet sized bays. Each bay is referred to logically by a multi level hierarchy, consisting of zone, aisle, left/right side, storage bay, and stack level - some are alpha - eg left right is AB in their parlance, and stack levels are A to D, but ailses are two digit numeric.
After some thought I am not using an autonumber key, but i am treating left/right as numerically 1-2, stacks A-D as numerically 1-4, and constructing a numeric primary key that looks like
2431244, and also storing the string equivalent of 143A24D
2-43-1-12-4 (1-43-A-12-D)
representing
w/h zone 2
aisle 43
side 1 (a)
bay 12
level 4 (d)
doing it this way makes it easy to search any given location for nearby locations, based on the pattern of the primary key,
it also means they can select form their string key (in look ups) which is easy for them to do
and most importantly, I can easily have a function to go from one to the other.
although I could have used an autonumber key, and just manipulated the string to search bays, it did seem as straightforward in this instance to use a meaningful numeric key.