I've just added reference numbers to each individual in my family tree. Up until recently I've never used them since I didn't think they were necessary. But as my tree grows, so do the number of duplicate names. If I had solid dates for every person then reference numbers might be redundant. But since I currently have (6) Elizabeth Earecksons without birth dates, it was time to start using them.
That decision made, the next question was "How?" I could have used some sort of logical numbering scheme, but that would have entailed manually calculating and entering 20,000 numbers. And since most numbering algorithms generated a digit for each generation, the numbers would be 20+ digits. So I tried the simplest method: sequential numbers. But how would I enter 20,000 sequential numbers?
When I export a gedcom file from Family Tree Maker (FTM), each individual is given a sequential number starting with I00001. And, in every gedcom file I've ever created, Benjamin Henry Latrobe is always I00001. This is because he was the very first person I entered in FTM. Now, there's no way to see in FTM that Benjamin is number one because FTM doesn't think it's important. But in the FTM database, Benjamin is record number one. FTM does provide a way to automatically generate reference numbers and I thought this would be my answer. However, once they are generated, they aren't static and may change over time. This is probably because FTM uses the database record number. Problems occur when I delete a name. When I then add a new name it fills in the empty record. But if I compact the database to make it more efficient then all the existing records are shifted up to fill in any empty spaces. If FTM uses the record number to assign reference numbers then you can see how they will change. This makes the automatic reference numbers in FTM pretty useless. Or does it?
I ran into another problem with the new web site when I uploaded my gedcom file. Each individual was being assigned a 'person ID' based on the 'individual number' from the gedcom. This allows you to create links to each individual that will never change as long as the 'individual numbers' in future gedcoms never change. So now my success is dependant on my ability to manipulate FTM into doing what I want it to do. I need to ensure that every time I export a gedcom file that each 'individual number' is linked to the correct person. To help me track this I'm back to using reference numbers again. If I can make the reference number match the individual number assigned during gedcom creation then I can easily monitor their integrity.
So I tried a little experiment. I turned on 'automatic reference numbers' in FTM and created a gedcom. Looking at the gedcom I saw that Benjamin had an INDI of I00001 and a REFN of 1. The next INDI was I00002 with a REFN of 2. So far so good. But when I scrolled to the last person, the numbers didn't match. The last INDI was I19347 but its REFN was 19372. The stats in FTM showed that I had 19437 people so the sequential number in the gedcom was working, but why were the reference numbers too high. I scrolled through the file until I found the point where the REFN stopped incrementing by one and skipped a few numbers. Further on down it skipped a few more. Then I remembered that FTM is probably using a record number to generate reference numbers. Since I had deleted people from my tree there were now empty records in the FTM database. So I compacted my FTM file and re-ran the experiment. This time INDI and REFN both ended in 19437. Now all I had to do was import this gedcom into a new FTM file and I would have 19437 pre-assigned, static reference numbers. And all future gedcom exports would have 'individual numbers' that matched the REFN.
This whole experiment made one caveat obvious. If I ever delete a person from my tree I will have a hole in my FTM data that will foul up the gedcom numbers on future exports. However, if I add a new name it will fill in that empty record and take over the INDI number. All I need to do is keep track of the deleted reference number and re-assign it. I'm not sure what's going to happen if I merge two individuals. Hopefully, I can figure out which record number was freed up and re-use it. Also, if I delete too many people at once without adding the same number of new idividuals, I will still have empty records and won't be able to create a usable gedcom. I guess I could create some dummy place-holders with no relations. Most importantly, I must never compact my FTM file again. It is much safer to export a gedcom, check the integrity of my reference numbers, and import into a new FTM file.