Hallo!
Kann mir jemand erklären, wieso in der Users-Table die user_id kein AUTO_INCREMENT ist, sondern vordem Einfügen der nächste freie Wert (MAX(user_id) + 1) ermittelt wird?
Ich habe damit nämlich ein Problem. Ich habe eine Usergalerie, die die Usertabelle von phpBB benutzt. Wenn ich jetzt in phpBB einen User lösche, würden alle seine Bilder dem nächsten User zugeschrieben werden. An der Galerie will ich nichts ändern. Die Frage ist jetzt wieso das so ist? Wieso nicht einfach AUTO_INCREMENT und mysql_insert_id() (bzw $db->sql_lastid()) anwenden?
Grüße
Faux
Wieso ist user_id kein AUTO_INCREMENT?
Re: Wieso ist user_id kein AUTO_INCREMENT?
Wegen eines Bugs in alten MySQL Versionen, bei einer ID unter 0 (Anonymous hat -1) gab es Probleme.faux hat geschrieben:Hallo!
Kann mir jemand erklären, wieso in der Users-Table die user_id kein AUTO_INCREMENT ist, sondern vordem Einfügen der nächste freie Wert (MAX(user_id) + 1) ermittelt wird?
Da in der Usertabel das Feld user_id immer auf den nächst größeren Wert von MAX(user_id) gesetzt wird. Wenn also ein User gelöscht wird, so bekommt der nächste User die ID des zuvpr gelöschten. Und die Galerie ordnet die Bilder (und Rechte) anhand der User ID zu.Miriam hat geschrieben:Wieso würden denn die Bilder, beim Löschen eines Users, falsch zugeordnet werden?
So sollte es sein. Nur ist es vor kurzem vorgekommen, dass ein Admin einen User aus dem phpBB gelöscht hat, aber vergessen hat ihn vorher aus der Galerie zu löschen (dass seine Bilder jemanden anderen zugeordnet werden und die Gruppenrechte gelöscht werden). Jedenfalls hat sich dann ein neuer User registriert und die ID des zuvor gelöschten erhalten (so soll es sein). Da die Rechte und Bilder jedoch noch bestanden wurden sie laut ID dem neuen zugeordnet. Und bevor ich da jetzt lange die User-Verwaltungen von Galerie und phpBB zusammenwürfle und langmächtig herumcode, dass soetwas nicht nochmal passieren kann, dachte ich, ich setze die user_id einfach auf AUTO_INCREMENT.Dave hat geschrieben:Ich verstehe das problem auch nicht so ganz... Wenn du einen User löscht wieso willste seine Bilder noch haben? Oder wieso ordnest du sie dann nicht einfach dem der user_id -1 zu?
Schätze mal, dass das MySQL 3 und kleiner war, oder ist MySQL 4 von diesem "Feature" auch noch betroffen?jensemann hat geschrieben:Wegen eines Bugs in alten MySQL Versionen, bei einer ID unter 0 (Anonymous hat -1) gab es Probleme.
Danke schon mal.
Grüße
Faux
Zuletzt geändert von faux am 01.09.2006 21:04, insgesamt 1-mal geändert.
Es betraf niemals ein ganzes Major-Release (das wäre ja grausam), es betraf immer nur eine oder ein paar wenige Minor Releases, ich glaube nicht das diese heute noch in großem Umfang eingesetzt werden.faux hat geschrieben:Schätze mal, dass das MySQL 3 und kleiner war, oder ist MySQL 4 von diesem "Feature" auch noch betroffen?jensemann hat geschrieben:Wegen eines Bugs in alten MySQL Versionen, bei einer ID unter 0 (Anonymous hat -1) gab es Probleme.
Was hält dich auf es selbst zu testen? Ist ca. 5 Min. Aufwand

- S2B
- Ehemaliges Teammitglied
- Beiträge: 3258
- Registriert: 10.08.2004 22:48
- Wohnort: Aachen
- Kontaktdaten:
Mein MySQL4 (nicht 4.1)-Server hat neulich noch gesponnen, als ich sowas machen wollte.faux hat geschrieben:Schätze mal, dass das MySQL 3 und kleiner war, oder ist MySQL 4 von diesem "Feature" auch noch betroffen?jensemann hat geschrieben:Wegen eines Bugs in alten MySQL Versionen, bei einer ID unter 0 (Anonymous hat -1) gab es Probleme.

Gruß, S2B
Keinen Support per ICQ/PM!
Hier kann man meine PHP-Skripte und meine MODs für phpBB runterladen.
Keinen Support per ICQ/PM!
Hier kann man meine PHP-Skripte und meine MODs für phpBB runterladen.
Nichts.jensemann hat geschrieben:Was hält dich auf es selbst zu testen? Ist ca. 5 Min. Aufwand

Ich werde es in wenigen Augenblicken wissen.

Geht. Danke. Wollte nur auf Nummer sicher gehen, dass dieser "Bug" der einzige Grund hierfür war.
S2B hat geschrieben:Mein MySQL4 (nicht 4.1)-Server hat neulich noch gesponnen, als ich sowas machen wollte.

Naja, wenn ich nen neuen Datensatz anlegen will (händisch), zählt er brav hoch. Mal abwarten, wie sich das entwickelt.
Danke nochmals.
Grüße
Faux