As soon as I saw the subject "ID Values", I knew this question was going
to be about the issues list. I'm asked this question all the time.
With all lists, including the issues list, every new item is given an ID
that is incremented by 1 from the previous IDs. You may notice that, if
you move your mouse over the link for any list item (i.e., contacts
list, events calendar, etc.) the URL for the item will end with
"?ID=##".
So the ID is always there for all lists. You just have to include it as
one of your columns in order to have it displayed.
Issues lists are a little bit different, though, for a couple of
reasons:
1) Most lists don't include the ID column in the default views, while
Issues lists do. The reason an Issues list does is because it is common
in a QA environment to refer a developer or tester to issue Number ###.
2) As you noted, in an Issues List, it is sometimes not incremental - or
so it seems. With an Issue List, every time you edit an existing item,
it actually creates a new row in the database, with the next number in
the sequence as it's ID. So if you create a new list, and log two issues
right off the bat, you will notice that their IDs are 1 and 2. If you
then go and edit Issue 1, the "changed item" will become Issue 3, with a
link back to Issue 1. That is how the issues list is able to maintain
the issue history. Then, if you go and create another new issue, the new
issue will have an ID of 4.
If you look closely at the definition of the views for an Issues list,
they all include a filter of Current = True (or something like that).
This is so that only the most recent version of an issue is displayed in
the full list.