suit: Hex-Zufallswerte

Beitrag lesen

ich benutze eine Funktion, die einen Zufallswert erzeugt, 0-9 und a-f, also zB sowas wie "fae03". Idee ist es, Indizes zu erzeugen, ohne eine DB zu nutzen.

Wozu?

Ohne DB kann ich aber nicht prüfen, ob der Wert schon erzeugt wurde, ohne jedesmal das Array zu durchforsten, was der Performance auf Dauer abträglich wäre.

Du willst also doch eine Datenbank verwenden, die ID aber Hexadezimal haben und daher glaubst du, sie selbst generieren zu müssen?

Pro Session dürften so 10.000 Werte anfallen - jetzt kommt die Frage, denn ich bin mathematisch völlig unbegabt - wieviele Stellen sollte der Wert haben, um die Wahrscheinlichkeit der doppelten Vergabe so gering wie möglich zu halten? Sind die 5 ausreichend?

5-Stellen sind nichtmal ansatzweise ausreichend, bei 5 Hexadezimalstellen hast du 16.777.215 Werte - die und bevor du jetzt die Wahrscheinlichkeit einer Kollision ausrechnest, indem du den Wertbereich durch den benötigten Bereich teilst, weise ich dich auf das Geburtstagsparadoxon hin.

Was hast du gegen das Session-Handling von PHP?

Oder noch besser: was zur Hölle hast du vor?