Mailinglisten-Archive |
Hallo, > tja, so geht das leider nur, wenn immer nur einer auf die > Daten zugreift. > (Klassischer Designfehler). > So gehts: > > 1.) ID-Tabelle read/write locken > 2.) ID aus der DB holen > 3.) ID + 1 in die DB zurückschreiben > 4.) ID-Tabelle unlocken. > > Schritte 1-4 Sollten alle direkt hintereinander ausgeführt > werden, damit > die Lockzeit nur ganz kurz ist (alle andern Seiten müssen > nämlich warten, > wenn die DB gelockt ist). Wie locke ich denn eine MySQL-Tabelle? Die Scripte warten dann so lange bis die DB unlocked ist? > Die Programmiersprache ist hier wurscht. Es geht doch darum eine > eindeutige, fortlaufende ID zu erzeugen - und das ist ein Algorithmus > der sich am einfachsten mit einer DB erledigen lässt. > > Wenn du das über Dateien machst, musst du die Locks auch auf > Dateiebene setzen, was bestimmt auch nicht schneller ist. Nunja, aber bei java würde ich einen Thread aufmachen bei jeder ankommenden Verbindung (einfach auf einem Port warten) und dann die Variable aus einer Globalen Variable übernehmen... Kann man eigentlich Variablen in PHP deklarieren, die in jedem Script auf dem Server zur Verfügung stehen. Obwohl sicherlich das mit der Datenbank die beste Lösung ist. Vielen Dank, CHristian
php::bar PHP Wiki - Listenarchive