I'm working on a project that requires assigning ID numbers to records about people in a database. Each person may have many records associated with their ID number.
There was a discussion about whether it was desirable to have information about each person encoded in their ID number. For instance, the ID number could be [year person was first added (4 digits)][state number where person was first added (2 digits)][sequential counter (4 digits)], like
2016010002. Alternatively, it could contain no semantic content at all.
On one hand it could be nice for sanity checking that we can make sure the ID number matches the data in each field, and it's easier to remember an ID if you want to. On the other hand, if something in the record needed to change, we might have to figure out whether to change the person's ID, which could cause problems.
What are the upsides and downsides to including information about the record in the ID number? When is each approach preferred?