4 ms·
Slightly OT but related: one of the problems with identifiers that I have come to accept is that the things underlying the identifiers change over time. Things
by efitz 3y ago
Slightly OT but related: one of the problems with identifiers that I have come to accept is that the things underlying the identifiers change over time. Things come and go, businesses launch and fail or are acquired/absorbed into other businesses, humans are born and die, humans change their names or genders, people buy and sell and subdivide or combine real property, people paint things different colors- the only constant is change. And it generally wreaks havoc because people who thought up identifiers for things usually assumed immutability of a mutable thing, and often don't have workable procedures for keeping up with change.
I've come to the conclusion that identifiers should be structured in such a way that they have no relationship to what they identify - for instance, never ever ever use a name as an identifier, no matter how you normalize it. All properties of things should be mutable descriptors. Identifiers should be numeric-ish. Identifiers are not user interface, either - don't try to format them for readability - the audience for identifiers should be automation, not humans. You should give humans a way to serialize them, such as a URL or UUID or whatever, but the point is just to port the thing unambiguously between systems, not to be human readable. You can build UX that looks up the ID and shows you what the descriptive properties are.