ursus contionabundo: Korrektur: "Kleiner" Denkfehler

Beitrag lesen

"Kleiner" Denkfehler: Die Reserve für einen Zufallswert beträgt

  • NICHT: PHP_INT_MAX / hexdec("fffffffffffff")
  • SONDERN: PHP_INT_MAX - hexdec("fffffffffffff")

also 9218868437227405312

Die um einen nunmehr brauchbaren Zufallswert verbesserte numerische uid (nicht: uuid!) kann man also so bilden:

$betterUID = hexdec( uniqid( "", true ) ) +
             + random_int (
                  0 ,
                  ( PHP_INT_MAX - hexdec( "fffffffffffff" ) 
               )
            );

Jetzt könnte man die Frage stellen, ob man nicht einfacher gleich:

$otherUID = random_int( 0, PHP_INT_MAX );

benutzt. Aber, jedenfalls jenseits der Warnungen zum zeitbasiertem uniqid() schließt eben die Methode mit uniqid() jedenfalls halbwegs gut eine Wiederholung aus, weil die Summe nicht kleiner werden kann als der zeitstempelbasierte Ansatz.

Bis das nicht mehr gilt vergehen wohl genug Jahre und bis dahin haben wir ganz andere Gültigkeitsbereiche.

So. Ich geh jetzt wirklich baden.

0 40

mysql: Zeitfresser

Pit
  • sql
  1. 0
    dedlfix
    1. 0
      Pit
      1. 0
        dedlfix
        1. 1
          Pit
        2. 0

          +1 bitte

          ursus contionabundo
          1. 0
            Matthias Apsel
            1. 0
              TS
              • menschelei
              • projekt
              • zu diesem forum
              1. 0
                Matthias Apsel
      2. 0
        Rolf B
        1. 0
          Pit
  2. 0
    ursus contionabundo
    1. 0
      Pit
      1. 1
        ursus contionabundo
        1. 0
          Pit
          1. 0
            TS
            • mysql
        2. 0
          Rolf B
          1. 0
            ursus contionabundo
            1. 0
              Rolf B
              1. 0

                Harangue

                ursus contionabundo
                • humor
      2. 0
        ursus contionabundo
        • php
        • sql
        • webserver
      3. 0

        Unique Identifier Symbolvorrat.

        TS
        • php
        • sql
        1. 0
          dedlfix
          1. 0
            ursus contionabundo
          2. 0
            Pit
            1. 0

              Zu php: uniqid() vers. mysql uuid()

              ursus contionabundo
              1. 0

                Für die Geschichtsschreibung:

                ursus contionabundo
                • geschichte
                • sonstiges
              2. 0

                Korrektur: "Kleiner" Denkfehler

                ursus contionabundo
              3. 1
                dedlfix
                1. 0
                  ursus contionabundo
              4. 0
                Auge
          3. 0
            TS
            • cloud
            • php
            • sql
            1. 0
              dedlfix
              1. 0
                TS
                • cloud
                • offtopic
                1. 0
                  dedlfix
                  1. 0
                    TS
                    1. 0
                      dedlfix
    2. 0

      Welcher Ordinaltyp für einen Index?

      TS
      • mysql
      1. 0

        Theorie vers. Praxis

        ursus contionabundo
        1. 0
          ursus contionabundo