ID´s
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.1, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.1, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
-
Heinrich senior
ID´s
Hallo Leute!
Hoffentlich hab ich jetzt das richtige Forum ausgewählt.
Wie verhält sich das eigentlich mit den Postings?
Jedes Posting bekommt doch eine eigene ID, die mit in der Datenbank gespeichert wird.
Wenn ich jetzt ein Posting lösche, würde ja die ID frei werden.
phpBB2 zählt aber weiter und
Also z.B. in der Tabelle phpBB2_posts_text:
1. Posting - angezeigt wird die ID 1 und der Text
2. Posting - angezeigt wird die ID 2 und der Text
3. Posting - angezeigt wird die ID 3 und der Text
4. Posting - angezeigt wird die ID 4 und der Text
Jetzt lösche ich das 2. Posting und füge ein weiteres dazu:
1. Posting - angezeigt wird die ID 1 und der Text
3. Posting - angezeigt wird die ID 3 und der Text
4. Posting - angezeigt wird die ID 4 und der Text
5. Posting - angezeigt wird die ID 5 und der Text
Genauso ist es bei den Usern, was passiert dann mit
den freiwerdenden ID-Plätzen?
Auch kommt es in der Datenbank vor, das es so aussieht
z.B. tabelle phpBB2_users:
31. User und die Daten
41. User und die Daten
1. User und die Daten
2. User und die Daten
3. User und die Daten
4. User und die Daten
Gibts da ne`Erklärung für?
MfG
Heinrich senior
Hoffentlich hab ich jetzt das richtige Forum ausgewählt.
Wie verhält sich das eigentlich mit den Postings?
Jedes Posting bekommt doch eine eigene ID, die mit in der Datenbank gespeichert wird.
Wenn ich jetzt ein Posting lösche, würde ja die ID frei werden.
phpBB2 zählt aber weiter und
Also z.B. in der Tabelle phpBB2_posts_text:
1. Posting - angezeigt wird die ID 1 und der Text
2. Posting - angezeigt wird die ID 2 und der Text
3. Posting - angezeigt wird die ID 3 und der Text
4. Posting - angezeigt wird die ID 4 und der Text
Jetzt lösche ich das 2. Posting und füge ein weiteres dazu:
1. Posting - angezeigt wird die ID 1 und der Text
3. Posting - angezeigt wird die ID 3 und der Text
4. Posting - angezeigt wird die ID 4 und der Text
5. Posting - angezeigt wird die ID 5 und der Text
Genauso ist es bei den Usern, was passiert dann mit
den freiwerdenden ID-Plätzen?
Auch kommt es in der Datenbank vor, das es so aussieht
z.B. tabelle phpBB2_users:
31. User und die Daten
41. User und die Daten
1. User und die Daten
2. User und die Daten
3. User und die Daten
4. User und die Daten
Gibts da ne`Erklärung für?
MfG
Heinrich senior
- D@ve
- Ehemaliges Teammitglied
- Beiträge: 3842
- Registriert: 28.08.2002 19:33
- Wohnort: Bretzfeld
- Kontaktdaten:
So wie Du es beschrieben hast funktioniert das nicht. Die IDs werden per MySQL über autoincrement erzeugt. Egal ob gellöscht wird oder neue Einträge hinzukommen, es wird immer einfach hochgezählt.
Bei einer Löschung bleiben halt Lücken in den IDs
Die Sortierung der Daten bei SQL erfolgt in der Regek meistens in der Reihenfolge wie sie aufgenommen wurden, von daher nicht immer nach einem bestimmten Feld...
Gruß, Dave
Bei einer Löschung bleiben halt Lücken in den IDs
Die Sortierung der Daten bei SQL erfolgt in der Regek meistens in der Reihenfolge wie sie aufgenommen wurden, von daher nicht immer nach einem bestimmten Feld...
Gruß, Dave
There are only 10 types of people in the world: Those who understand binary, and those who don't
Vielleicht nochmals zur allgemeinen Erklärung:
Bei den IDs handelt es sich um sog. eindeutige Schlüssel (auch: Primärschlüssel), die einen Datensatz eindeutig identifizieren. Eine ID darf daher in einer Tabelle nur einmal existieren.
Zur Festlegung dieser ID kann man bei MySQL die Option 'auto increment' aktivieren. Ist diese Option aktiviert, so wird automatisch ein Wert für den Primärschlüssel festgelegt - und zwar in aufsteigender Reihenfolge. Wird ein Datensatz gelöscht, so wird der interne Zähler nicht zurückgesetzt - und so der alte Wert nicht erneut verwendet. Ziel dieses Verhaltens ist es, Inkonsistenzen zu vermeiden.
Unabhängig davon ist die Reihenfolge, in der MySQL die Datensätze speichert. Löscht du einen Datensatz, so wird der Soeicher nicht komplett freigegeben sondern es bleibt eine 'Lücke' zurück. Wird anschließend ein neuer Datensatz erstellt, so kann er die Lücke wieder füllen - die Datensätze sind dann nicht mehr chronologisch abgelegt.
Das mal als kurze Einführung...
Gruß, Philipp
Bei den IDs handelt es sich um sog. eindeutige Schlüssel (auch: Primärschlüssel), die einen Datensatz eindeutig identifizieren. Eine ID darf daher in einer Tabelle nur einmal existieren.
Zur Festlegung dieser ID kann man bei MySQL die Option 'auto increment' aktivieren. Ist diese Option aktiviert, so wird automatisch ein Wert für den Primärschlüssel festgelegt - und zwar in aufsteigender Reihenfolge. Wird ein Datensatz gelöscht, so wird der interne Zähler nicht zurückgesetzt - und so der alte Wert nicht erneut verwendet. Ziel dieses Verhaltens ist es, Inkonsistenzen zu vermeiden.
Unabhängig davon ist die Reihenfolge, in der MySQL die Datensätze speichert. Löscht du einen Datensatz, so wird der Soeicher nicht komplett freigegeben sondern es bleibt eine 'Lücke' zurück. Wird anschließend ein neuer Datensatz erstellt, so kann er die Lücke wieder füllen - die Datensätze sind dann nicht mehr chronologisch abgelegt.
Das mal als kurze Einführung...
Gruß, Philipp
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
Kurze Antwort: neinEisbär hat geschrieben:Kann man eigentlich so einfach, wenn sich ein neuer User registriert und
noch keinen Beitrag geschrieben hat, seine vorgegebene ID
gegen eine freigewordene ID ändern?
Es gibt nämlich schon zu diesem Zeitpunkt Beziehungen, die durch die Änderung gelöscht werden.
Gruß, Philipp
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
Das Board selbst hat kein Limit (na ja, kein relevantes). Das Limit das zählt ist das was die Datenbank an max Größe für den verwendeten Feld typ reserviert.
Das verrät dir die Doku deiner Datenbank, möglicherweise ist dies auch systemsabhängig. Aber ich denke nicht das es für dich wichtig ist dies herauszufinden, mir wäre keine installation bekannt an der man ans Limit gestoßen ist.
Das verrät dir die Doku deiner Datenbank, möglicherweise ist dies auch systemsabhängig. Aber ich denke nicht das es für dich wichtig ist dies herauszufinden, mir wäre keine installation bekannt an der man ans Limit gestoßen ist.
- D@ve
- Ehemaliges Teammitglied
- Beiträge: 3842
- Registriert: 28.08.2002 19:33
- Wohnort: Bretzfeld
- Kontaktdaten:
Mach Dir mal keine Sorgen, die sind alle als Longint augelegt. Ich hab die Zahlen gerade nicht im Kopf aber Gedanken musst Du Dir erst machen, wenn Du zehnstellige IDs hast.Eisbär hat geschrieben:Hallo PhilippK,
vielen Dank für diese ausführliche Antwort!!!
Also geht es bei einem neuangemeldeten User auch nicht.
Wieviele ID´s kann das Board verarbeiten?
@Phillip
Ich bin mir eigentlich fast 100% sicher dass die Lücken nicht wieder gefüllt werden zumindestens nicht bei SQL und MySQL.
Gruß, Dave
There are only 10 types of people in the world: Those who understand binary, and those who don't
Diese wieder zu füllen wäre sinnlos und falsch.
Im falle mysql wird auto increment verwendet, increment also immer + 1, füllen liese sich hiermit nicht vereinbaren.
Bei DBs die kein auto increment verwenden wird die max-id gesucht und inkrementiert, hier lücken zu füllen wäre unnötiger code.
Ausserdem erachte ich das lücken füllen als problematisch, da evtl. nicht-phpbb apps auf einer id noch was zuordnen was so nicht mehr existiert bzw. auf was anderes zeigt.
Evtl. passend zu dieser id geschichte: ich konnte kürzlich einen Server untersuchen nach einem Einbruch, Ursache der sicherheitslücke war das füllen von ID lücken, ein User hatte zugriff auf Dateien dessen owner id mal gelöscht wurde, die Dateien zeigten aber noch auf diese, durch neuanlegen dieser ID gehörten die Daten einem anderen User.
Bezieh das mal auf phpBB. Das ID Lücken füllen schafft mehr Probleme als es löst.
Im falle mysql wird auto increment verwendet, increment also immer + 1, füllen liese sich hiermit nicht vereinbaren.
Bei DBs die kein auto increment verwenden wird die max-id gesucht und inkrementiert, hier lücken zu füllen wäre unnötiger code.
Ausserdem erachte ich das lücken füllen als problematisch, da evtl. nicht-phpbb apps auf einer id noch was zuordnen was so nicht mehr existiert bzw. auf was anderes zeigt.
Evtl. passend zu dieser id geschichte: ich konnte kürzlich einen Server untersuchen nach einem Einbruch, Ursache der sicherheitslücke war das füllen von ID lücken, ein User hatte zugriff auf Dateien dessen owner id mal gelöscht wurde, die Dateien zeigten aber noch auf diese, durch neuanlegen dieser ID gehörten die Daten einem anderen User.
Bezieh das mal auf phpBB. Das ID Lücken füllen schafft mehr Probleme als es löst.
D@ve,
Gruß, Philipp
Wüsste nicht, dass ich so was behauptet hätte...D@ve hat geschrieben:@Phillip
Ich bin mir eigentlich fast 100% sicher dass die Lücken nicht wieder gefüllt werden zumindestens nicht bei SQL und MySQL.
Gruß, Philipp
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
