I have a master sqlite file with an arbitrary schema that is constantly evolving. I go hard with the constraints and primary keys - so hard, in fact, it's nigh-impossible to add a new contact without cascading changes. I'm always eager to keep my contacts, so this has kept my pretty sharp with sqlite.
I can't tell if you're joking or not, but I sympathize regardless.
A contact is just a bunch of fields and context. The context matters the most, as long as you have a single real way to get in touch. So as long as you have a `notees` column, permissions to `readfile`, and a shell you're golden.