May 19, 2022
That situation works in a few situations:
* Retrofitting existing code
* For whatever reason GUID as PK has a performance issue (people swear this is a thing, I am convinced that if it is, it's an edge case)
* There is a reason you might want to be able to change that publicly-know ID without it impacting the data model (such as a very oddball security requirement, the equivalent of only giving out a Google Voice number to strangers but letting your friends have your real phone number)
I note that the first is sensible and reasonable, the others are very edge case-y.
J.Ja