• TehPers ( TehPers@beehaw.org ) 
    link
    fedilink
    English
    arrow-up
    9
    ·
    4 months ago

    I’m glad this covers UUIDv7. Unless you need cryptographically-random, unpredictable row IDs, using UUIDv7 helps a lot with the performance by making the keys ordered at least.

  • awesome!

    but seriously who uses UUID as their primary keys? what’s wrong with plain old INT. it’s more predictable you can look at the integer primary key and tell which records created when relative to each other. also you can easily remember them. unlike UUID.

    • Lemmy sure loves swallowing my reply. To answer your question shortly is an offline first app where the user can add records and the relation during offline and then sync it later after connection is re-established.

      • um, I am not sure if I understood this.

        Let’s say I want to create a record with my username and password. I will create it offline like saving it in a Json or plain text file. now when I get an internet connection back I will just send that username and password to the database. here the user isnt sending the Id so it shouldn’t matter. but if the user is sending the Id then yeah I can see how it could become a problem. eg, two user can be sending the same Id 500 and will lead to race condition as someone else mentioned here.

        is it correct?

        • vrek ( vrek@programming.dev ) 
          link
          fedilink
          English
          arrow-up
          2
          ·
          4 months ago

          Yeah if your only storing username and passwords and hoping no one uses the same username. Now consider I’m running tests on a piece of hardware and storing results in the database. I run 45 tests per unit so I can’t use serial number as id, I want a way to get all results for a single unit and I have 5 testers since I’m high volume but each test takes 30 seconds.

          Tester 1 and tester 4 might get same pk if offline, random IDs for each record won’t work since I can’t combine everything for 1 unit. This is more why you use uuids for each test