Allgemeine Frage zur Arbeit mit MS SQL Express DB

12/04/2010 - 22:43 von martina gerling | Report spam
Hallo NG,

ich verwalte zentral Kundendaten, auf welche in Zukunft mehrere
Mitarbeiter zugreifen sollen. Nach dem Start der Software sollen
Vorgànge, welche auf Wiedervorlage liegen, angezeigt werden. Jeder
Mitarbeiter soll nun diese Vorgànge abarbeiten können.
Wie kann ich zwischen den Rechnern und der DB soetwas lösen, dass
nicht zwei Mitarbeiter gleichzeitig den selben Vorgang abarbeiten? Ich
stehe da noch am Anfang und suche nach Ansàtzen, wie ich die Arbeit am
besten lösen kann. Vielleicht könnt ihr mir ein paar Tipps geben, wie
man an so eine Aufgabe rangeht.

Danke schon mal im Voraus

Martina
 

Lesen sie die antworten

#1 Helmut Woess
13/04/2010 - 05:10 | Warnen spam
Am Mon, 12 Apr 2010 13:43:20 -0700 (PDT) schrieb martina gerling:

Hallo NG,

ich verwalte zentral Kundendaten, auf welche in Zukunft mehrere
Mitarbeiter zugreifen sollen. Nach dem Start der Software sollen
Vorgànge, welche auf Wiedervorlage liegen, angezeigt werden. Jeder
Mitarbeiter soll nun diese Vorgànge abarbeiten können.
Wie kann ich zwischen den Rechnern und der DB soetwas lösen, dass
nicht zwei Mitarbeiter gleichzeitig den selben Vorgang abarbeiten? Ich
stehe da noch am Anfang und suche nach Ansàtzen, wie ich die Arbeit am
besten lösen kann. Vielleicht könnt ihr mir ein paar Tipps geben, wie
man an so eine Aufgabe rangeht.

Danke schon mal im Voraus

Martina



Normalerweise verwendet man "optimistic Locking". Das bedeutet, wenn zwei
Benutzer gleichzeitig denselben Datensatz lesen und bearbeiten, kann der,
der als erster auf Speichern drückt, seine Änderungen problemlos speichern,
wàhrend der Zweite eine Fehlermeldung bekommt, dass sich die Daten
inzwischen geàndert haben und ein Speichern daher nicht möglich ist. Der
muss dann den Datensatz nochmal einlesen und kann dann seine Änderungen
machen.

Könnte aber abhàngig vom Workflow sein, dass zu àndern, dann müsste man
sich etwas anderes überlegen. Zb über eine Hilfstabelle, die sich, wenn ein
Benutzer auf "Ändern" drückt, die Recordid und den Zeitpunkt merkt und
diesen Record dann für eine bestimmte Zeitdauer so sperrt, dass ein
anderer, der ebenfalls auf "Ändern" drückt, eine Info kriegt, dass der
datensatz gerade gesperrt ist (könnte man noch ergànzen um "wer hat
gesperrt" und "wie lange max. nochgesperrt"). Sollte der Benutzer seine
Änderung dann nicht innerhalb der Zeitgrenze sein Änderung gespeichert
haben, wird diese Sperre von der Datenbank aufgehoben und der benutzer
müsste wieder von vorne beginnen. Ist deswegen erforderlich, damit nichts
passiert, wenn jemand auf "Ändern" drückt und dann auf Mittag geht ...

Mit dem SQLExpress làsst sich auf jeden Fall beides (und sicher noch mehr)
schön realisieren.

bye,
Helmut

Ähnliche fragen