ckeen Geschrieben 25. Februar 2002 Geschrieben 25. Februar 2002 ich habe mit my-sql eine usertabelle. die id wird mit auto_increment automatisch um eins erhöht. problem: ich habe z.b. 8 user. user nr. 8 meldet sich wieder ab. wie mache ich es, dass die nächste anmeldung die id 8 bekommt, bis jetzt wird einfach weitergezählt, also 9 ;-(:confused: Zitieren
Valium Geschrieben 25. Februar 2002 Geschrieben 25. Februar 2002 Garnicht mit Autoincrement würd ich sagen, am besten schaust Du bevor Du einen neuen Account anlegst mit nem SELECT nach, welches die höchste ID is (oder welche kleinere noch frei is)= SELECT max(id)+1 as id FROM...... das nimmste dann als nächsten Wert beim anlegen. Zitieren
BigMac Geschrieben 27. Februar 2002 Geschrieben 27. Februar 2002 Original geschrieben von Valium Garnicht mit Autoincrement würd ich sagen, am besten schaust Du bevor Du einen neuen Account anlegst mit nem SELECT nach, welches die höchste ID is (oder welche kleinere noch frei is)= SELECT max(id)+1 as id FROM...... das nimmste dann als nächsten Wert beim anlegen. Wenn Du es auf diese Art machst, darfst Du aber dann z.B. beim Primary Key kein Auto Increment setzen, weil sonst die Fehlermeldung "duplicate entry" kommen wird. Zitieren
Valium Geschrieben 27. Februar 2002 Geschrieben 27. Februar 2002 Original geschrieben von Valium Garnicht mit Autoincrement würd ich sagen... [...] Zitieren
thomee Geschrieben 27. Februar 2002 Geschrieben 27. Februar 2002 soweit ich weiß, wird bei einem autoincrement immer weitergezählt. Du kannst daher nicht Lücken wieder auffüllen. Das ist auch bei Access so. Was du auch machen kannst, ist als primary key eine x-stellige Zufallszahl generieren und die als Primary Key benutzen. Das würde ich tun, weil, wie du selbst gesehen hast eine fortlaufende Nummerierung keinen Nutzen bringt. Mit einem Primary Key kannst du eigentlich nicht "arbeiten". Er gibt dir keine weiterführende Information zu einem Datensatz(welche Nummer, etc.). Das Einzige was ein Primary Key bringt, ist die Eindeutigkeit mit der dieser Datensatz, auch von anderen Tabellen aus (Verknüpfung), identifiziert werden kann. cu, Thomas Zitieren
beetFreeQ Geschrieben 28. Februar 2002 Geschrieben 28. Februar 2002 Original geschrieben von thomee Was du auch machen kannst, ist als primary key eine x-stellige Zufallszahl generieren und die als Primary Key benutzen. Das würde ich tun, weil, wie du selbst gesehen hast eine fortlaufende Nummerierung keinen Nutzen bringt. Mit einem Primary Key kannst du eigentlich nicht "arbeiten". Er gibt dir keine weiterführende Information zu einem Datensatz(welche Nummer, etc.). Das Einzige was ein Primary Key bringt, ist die Eindeutigkeit mit der dieser Datensatz, auch von anderen Tabellen aus (Verknüpfung), identifiziert werden kann. Was hat eine Zufalls-Zahl denn für einen Vorteil? Ist letztendlich ja auch nur eine eindeutige Identifizierung für den Datensatz - mehr nicht... Der Primary-Key bietet zumindest noch einen kleinen Anhaltspunkt, wieviele Datensätze die Tabelle bereits hinter sich hat... Zitieren
thomee Geschrieben 28. Februar 2002 Geschrieben 28. Februar 2002 hallo! Hm, wenn ich so überlege, würde ich sagen, dass es mehr "Sicherheit" bringt. Nehmen wir an, du hast einen online-shop und speicherst deine Kundendaten auch in einer Tabelle der MySql Datenbank. Wenn du als ID für jeden Datensatz eine fortlaufende Nummer benutzt, ist es für jemanden, der einen Weg gefunden hat, über das Webfrontend Kundendaten anzuschauen (z.B. http://www.shop.de/admin/config.php?show=adresse&kundennummer=20) um so leichter, alle Adressen herauszubekommen, als wenn die id, statt in diesem Fall 20, eine 8-stellige Zufallszahl wäre(vielleicht noch mit Zeichen). Ok, in diesem Fall muss man unterstellen, dass der Shop schlecht programmiert ist. Aber glaub mir, es gibt viele schlecht programmierte Seiten und man sollte jede Möglichkeit nutzen die Sicherheit zu erhöhen. cu, Thomas Zitieren
beetFreeQ Geschrieben 1. März 2002 Geschrieben 1. März 2002 Original geschrieben von thomee hallo! Hm, wenn ich so überlege, würde ich sagen, dass es mehr "Sicherheit" bringt. Nehmen wir an, du hast einen online-shop und speicherst deine Kundendaten auch in einer Tabelle der MySql Datenbank. Wenn du als ID für jeden Datensatz eine fortlaufende Nummer benutzt, ist es für jemanden, der einen Weg gefunden hat, über das Webfrontend Kundendaten anzuschauen (z.B. http://www.shop.de/admin/config.php?show=adresse&kundennummer=20) um so leichter, alle Adressen herauszubekommen, als wenn die id, statt in diesem Fall 20, eine 8-stellige Zufallszahl wäre(vielleicht noch mit Zeichen). Ok, in diesem Fall muss man unterstellen, dass der Shop schlecht programmiert ist. Aber glaub mir, es gibt viele schlecht programmierte Seiten und man sollte jede Möglichkeit nutzen die Sicherheit zu erhöhen. cu, Thomas Stimmt - an sowas hatte ich garnicht gedacht... Aber wie du schon sagst, wenn's sehr um Sicherheit geht, sind sowieso andere Mechanismen anzuraten! Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.