Earlier quoted context omitted.
URN's[0] can support resource categorization so long as the Namespace Identifier (NID) does not collide with the reserved ones (and I'd throw in those which are well-known in the industry as well). So, for example, a URN which uses UUID's to satisfy uniqueness yet still allows for categorization could look like: urn:some-company:resource-type:abcdef012-3456-... For complete technical conformance, the "some-company" N…
Imo, this is a great combination of strategies when you want to keep people away from iterating. It also gives you the basis for a decent ACL system. Yeah, you use a few more bytes per item, but modern DBs can handle that. Probably worth having a autoincrementing ID on tables using uuids as well, though. Not 100% sure on that, but I've definitely hit batch jobs that need to run / frameworks that require autoincrement…
Probably worth having a autoincrementing ID
on tables using uuids as well, though.
Quite true, IMHO. I usually define both an auto-incrementing integral primary key (PK) as well as a unique string column for the URN. The PK is used for deletes/updates/joins/referential integrity and is never exposed beyond the server processes.