I've spent a fair bit of time trying to rationalize a compact structure for multiple enlistments and I've come to the conclusion that any compactness that I may achieve comes at a processing cost that isn't worth it.
So, I've created a new 'enlistments' table that will have a one-to-many relationship with the person table - that is, every person can be associated with many enlistments.
Nearly 12,000 records have multiple dates-of-birth - either from mistakes or multiple enlistments. Either way I'll need to set something up that makes it easy to sort that out (some simpler version of the geocoder app that displays the two+ DOBs and lets the editor decide which one is right, or if it's a multiple-enlistment issue.
I'll also need to sort out the edits schema to figure out the best way to store edits (reproduce structure or use something like json).