PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   MySQLi/PDO/(MySQL) (http://www.selfphp.de/forum/forumdisplay.php?f=22)
-   -   Datensätze als "in Barbeitung" sperren (http://www.selfphp.de/forum/showthread.php?t=5424)

nightflasher 04.09.2003 11:29:40

Datensätze als "in Bearbeitung" sperren
 
Hi Leute,

ich habe folgendes Problem.

Ich habe ein Kundensystem mit 32000 Adressen entwickelt.
Mit diesem System arbeiten in meiner Firma nun ca. 10- 20 Leute gleichzeitig. Diese Adressen werden der Reihe nach abgearbeitet.

Nun ist das Problem, das es vorkommt, das 2 Leute gleichzeitig den gleichen Datensatz bekommen. Das hatte ich eigentlich schon gelöst, in dem ich den nächsten Datensatz ermittle und die ID dann in einer Sperrtabelle ablege. Sollte der Datensatz nicht bearbeitet werden, wird der Eintrag in der Sperrtabelle gelöscht und der Datensatz ist somit wieder freigegeben.

Gibt es keine "MYSQL"-Möglichkeit wie z.B. "inUSE" o.ä was ich benutzen kann.

Oder hat vielleicht jemand eine andere Idee ??

Danke und Gruß,
Helge

diver-network 04.09.2003 14:19:30

Hi Helge,

soweit ich weiß sperrt MySQL Datensätze bzw. Tabellen nur während des direkten Zugriffs auf sie, z.B. bei einem Update.
Es gibt aber die Möglichkeit, explizit einen LOCK auf die Tabelle bzw. den Datensatz zu machen. Dies bedeutet, abhängig von der "Art" des LOCKs, daß ein Lesen / Bearbeiten / Löschen des Datensatzes / der Tabelle so lange unmöglich ist, bis der LOCK wieder aufgehoben wird.

Schau hierzu aber mal im MySQL Handbuch unter dem Stichwort LOCK (hier die URL mit den Downloadseite bei MySQL.com: http://www.mysql.com/downloads/downl...df&pick=mirror), dort ist das um einiges besser erklärt.

Ich würde Dir aber die von Dir bereits vorgeschlagene Lösung mit dem manuellen Markieren des Datensatzes empfehlen. Locking Geschichten sind nicht ganz trivial und können bei falscher Anwendung (LOCK wieder aufheben) ganz schnell "ins Auge" gehen.

HTH,

Andy


Alle Zeitangaben in WEZ +2. Es ist jetzt 07:51:49 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.