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

  1. 0
    1. 0
      1. 0
        1. 1
        2. 0

          +1 bitte

          1. 0
            1. 0
              1. 0
      2. 0
        1. 0
  2. 0
    1. 0
      1. 1
        1. 0
          1. 0
        2. 0
          1. 0
            1. 0
              1. 0

                Harangue

      2. 0
      3. 0

        Unique Identifier Symbolvorrat.

        1. 0
          1. 0
          2. 0
            1. 0

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

              1. 0

                Für die Geschichtsschreibung:

              2. 0

                Korrektur: "Kleiner" Denkfehler

              3. 1
                1. 0
              4. 0
          3. 0
            1. 0
              1. 0
                1. 0
                  1. 0
                    1. 0
    2. 0

      Welcher Ordinaltyp für einen Index?

      1. 0

        Theorie vers. Praxis

        1. 0