Datensatz-ID als Primärschlüssel mit Varchar

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Datensatz-ID als Primärschlüssel mit Varchar

    Hallo,

    ich will meine Datensätzen nicht eine fortlaufende Nummer (auto_infrement) geben, sondern eine zufällige Zahlen-Buchstabenkombination (a1c1bw3).
    Grund: Die Datensatz-IDs treten in der URL auf und sollen nicht soleicht erratbar sein...

    Nun mein Frage, bietet mySQL dafür eine fertige Funktion (Wo man nur den Zeichesatzfestlegen braucht?), oder muss ich mir z.B. per PHP eine Zufallszeichenketten generieren und dann solange versuchen zu speichern (neue ID generieren), bis die ID gültig ist (falls die Zeichenketten schon in der Tabelle besteht...).

    Ist eine Zahlen-Buchstaben-ID eigentlich genauen schnell auffindbar wie eine vorlaufende Nummer, gibt es da ggf. Probleme mit der Performance...?

    Danke für Hinweise!

  • #2
    MySQL selbst bietet da nichts, hier findest du aber einen kleinen Lösungansatz (wobei du da trotz der 32 Stellen immer noch auf vorhandensein prüfen müsstest... und einen GET-Parameter mit 32 Zeichen ist auch nicht wirklich optimal..... ggf. wäre es auch einfacher die ID für die GET-Übergabe zu verschlüsseln?):

    http://www.daniweb.com/forums/thread41772.html

    Kommentar


    • #3
      Re: Datensatz-ID als Primärschlüssel mit Varchar

      Don't mess with IDs.

      Wenn die z.B. auch noch zum Verknuepfen mit Daten in anderen Tabellen gebraucht werden, ist das eher unguenstig, da mehrere Byte Varchar fuer zu nehmen, Platzverschwendung.

      Ich wuerde die ID auf INT und auto_increment lassen.
      Einen zusaetzlichen Schluessel fuer den Zugriff ueber eine "zufaellig" aussehende Zeichenkette kann man in einem zusaetzlichen Feld ablegen, Unique Index drauf, und gut.
      I don't believe in rebirth. Actually, I never did in my whole lives.

      Kommentar


      • #4
        Ah, gute Idee, THX

        Kommentar

        Lädt...
        X