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:
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.
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.
Valium Geschrieben 27. Februar 2002 Geschrieben 27. Februar 2002 Original geschrieben von Valium Garnicht mit Autoincrement würd ich sagen... [...]
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
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...
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
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!
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden