Let’s say I am making an app that has table Category and table User. Each user has their own set of categories they created for themselves. Category has its own Id identity that is auto-incremented in an sqlite db.

Now I was thinking, since this is the ID that users will be seeing in their url when editing a category for example, shouldn’t it be an ID specific only to them? If the user makes 5 categories they should see IDs from 1 to 5, not start with 14223 or whichever was the next internal ID in the database. After all when querying the data I will only be showing them their own categories so I will always be filtering on UserId anyway.

So let’s say I add a new column called “UserSpecificCategoryId” or something like that - how do I make sure it is autogenerated in a safe way and stays unique per user? Do I have to do it manually in the code (which sounds annoying), use some sort of db trigger (we hate triggers, right?) or is this something I shouldn’t even be bothering with in the first place?

  • @SzethFriendOfNimi
    link
    104 months ago

    This is the kind of stuff that UUID’s are good for. When you want to generate non conflicting unique id’s. Even across systems and over time.

    • @[email protected]
      link
      fedilink
      64 months ago

      I personally feel UUIDs are overused unless you happen to be running truly distributed systems that are all independently generating IDs.

      In this case where the ID is also going to be in the URL, you’ve just added 32 characters to the URL that don’t need to be there. Since OP is apparently concerned with the look and feel of the URLs, I thought that UUIDs wouldn’t be the best option.