When you just decided to use Surrogate Keys, another problem arises : which
value should I use ? It seems to be a very simple problem since the key now is
completely in isolation in your application and is not related to any data. The
choice is quite bonding, since a change means that every value has to be
changed, and you did not let this key leak outside the database did
you ?
The keypoint here is isolation. Many differents kinds of
isolation are available, and soon you will be able to make a informed
decision.